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++;
}