2012-08-17 10 views
5

Tak, musiałem przejść przez dokumentację Boost przez godzinę. Muszę być ślepy. Mam, mam nadzieję, proste pytanie:Uzyskiwanie właściwości krawędzi (w tym powiązanych wierzchołków) z boost :: adjacency_list

Jak uzyskać odpowiednie wierzchołki dla krawędzi z boost :: adjacency_list?

Mam następujący kod, który próbuję dowiedzieć się:

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... 
} 

ktoś wie jak to zrobić?

Dzięki

Odpowiedz

8

Można wybrać funkcje potrzebne w this page (w sekcji o nazwie „Funkcje dla użytkownika”). Te, których potrzebujesz, to source i 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

Dzięki za to! – MichaelM

Powiązane problemy