2012-08-17 2 views
5

그래서 오늘 한 시간 동안 Boost 문서를 읽었어야합니다. 나는 장님이되어야한다. 간단한 질문이 있습니다.boost :: adjacency_list의 가장자리 속성 (관련 정점 포함) 얻기

부스트 :: adjacency_list를 사용하여 가장자리에 해당 정점을 얻는 방법은 무엇입니까?

내가 가지고있는 내가 알아 내려고 노력하고있어 다음 코드 :

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

누구든지이 작업을 수행하는 방법을 알아?

감사

답변

8

당신은 ("비 멤버 함수"에서) this page에 필요한 기능을 찾을 수 있습니다. 필요한 것은 sourcetarget입니다.

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

고마워요! – MichaelM