J'essaie de parcourir les bords d'un graphique et de sortir leurs poids de bord. Je suis confus cependant. Je sais comment sortir les "bords", mais c'est en fait juste un (sommet, sommet) qui définit le bord. Donc, est-ce que j'indexe * edgePair.first dans EdgeWeightMap pour obtenir le poids du bord à partir du sommet * edgePair.first? Cela ne compile pas: "aucune correspondance pour l'opérateur < <".Sortie poids BGL Edge
#include <iostream>
#include <boost/graph/graph_traits.hpp>
#include <boost/graph/adjacency_list.hpp>
typedef boost::property<boost::edge_weight_t, double> EdgeWeightProperty;
typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS, EdgeWeightProperty> Graph;
int main(int,char*[])
{
// Create a graph object
Graph g(2);
EdgeWeightProperty e = 5;
add_edge(0, 1, e, g);
boost::property_map<Graph, boost::edge_weight_t>::type EdgeWeightMap = get(boost::edge_weight_t(), g);
typedef boost::graph_traits<Graph>::edge_iterator edge_iter;
std::pair<edge_iter, edge_iter> edgePair;
for(edgePair = edges(g); edgePair.first != edgePair.second; ++edgePair.first)
{
std::cout << EdgeWeightMap[*edgePair.first] << " ";
}
return 0;
}
Des pensées?
Merci, David
Veuillez consulter: http://programmingexamples.net/index.php?title=Boost pour des exemples simples. –