2012-08-17 14 views
5

Also muss ich heute die Boost-Dokumentation für eine Stunde durchgegangen sein. Ich muss blind sein. Ich habe, ich hoffe, eine einfache Frage:Abrufen von Edge-Eigenschaften (einschließlich zugehöriger Scheitelpunkte) von boost :: adjacency_list

Wie erhalten Sie die entsprechenden Vertices für eine Kante mit boost :: adjacency_list?

Ich habe den folgenden Code, die ich versuche, herauszufinden:

typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> Graph; 
typedef boost::graph_traits<Graph>::edge_iterator EdgeIterator; 
typedef std::pair<EdgeIterator, EdgeIterator> EdgePair; 

EdgePair ep; 
for (ep = edges(g); ep.first != ep.second; ++ep.first) 
{ 
    // Get the two vertices that are joined by this edge... 
} 

Wer weiß, wie dies zu tun?

Dank

Antwort

8

Sie die Funktionen, die Sie brauchen in this page (im Abschnitt "Nicht-Teilnehmer-Funktionen") finden können. Die, die Sie benötigen, sind source und target.

typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::undirectedS> Graph; 
typedef boost::graph_traits<Graph>::edge_iterator EdgeIterator; 
typedef std::pair<EdgeIterator, EdgeIterator> EdgePair; 
typedef boost::graph_traits<Graph>::vertex_descriptor VertexDescriptor; 

EdgePair ep; 
VertexDescriptor u,v; 
for (ep = edges(g); ep.first != ep.second; ++ep.first) 
{ 
    // Get the two vertices that are joined by this edge... 
    u=source(*ep.first,g); 
    v=target(*ep.first,g); 
} 
+0

Danke dafür! – MichaelM

Verwandte Themen