2017-01-23 17 views
0

부스트 그래프를 사용하고 있었는데 잘 이해하지 못하는 것 같습니다.부스트 그래프 가장자리의 레이블에 액세스하기

꼭지점 레이블에 액세스하려면 get (vertex_name, graph_)을 사용하고 []를 사용하여 액세스하는 것이 좋습니다. 하지만 가장자리의 레이블에 어떻게 액세스 할 수 있습니까?

나는 동일한 방법론 (그리고 다른 많은 잘못된 것들)을 적용하려고했지만 나는 그 라벨에 성공적으로 액세스하지 못했습니다. 여기

내 코드의 조각입니다 :

typedef property<edge_name_t, int> edge_property; 
typedef property<vertex_name_t, int> vertex_property; 
typedef adjacency_list<vecS, vecS, undirectedS, vertex_property, edge_property> MyGraph; 

MyGraph graph_; 
add_vertex(vertex_property(6), graph_); 
add_vertex(vertex_property(1), graph_); 
add_vertex(vertex_property(1), graph_); 
add_edge(0, 1, edge_property(2), graph_); 
add_edge(1, 2, edge_property(3), graph_); 
add_edge(0, 2, edge_property(1), graph_); 

cout << "Graph 1 [graph_]" << endl; 
typedef graph_traits<MyGraph>::edge_iterator edge_iter; 
pair<edge_iter, edge_iter> ep; 

property_map<MyGraph, vertex_name_t>::type labelling_vertex = get(vertex_name, graph_); 
property_map<MyGraph, edge_name_t>::type labelling_edge = get(edge_name, graph_); 

int position = 0; 
for (ep = edges(graph_); ep.first != ep.second; ++ep.first) { 
    unsigned int source_ = source(*ep.first, graph_); 
    unsigned int target_ = target(*ep.first, graph_); 
    cout << source_ << "["<< labelling_vertex[source_] <<"]" << " ~~~~" << labelling_edge[position] << "~~~~ " << target_ <<"[" <<labelling_vertex[target_] <<"]" << endl; 
    position++; 
} 

답변

0

좋아, 그냥 그렇게 할 수있는 방법을 발견했다.

labelling_edge [(* ep.first)]

죄송합니다 당신을 귀찮게하는