首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Boost-Graph访问边的标签

Boost-Graph访问边的标签
EN

Stack Overflow用户
提问于 2017-01-23 22:08:50
回答 1查看 212关注 0票数 0

我使用的是boost图,但我似乎不太理解它。

要访问顶点的标签,似乎可以使用get(vertex_name,graph_),然后使用。但是我如何访问边的标签呢?

我试图应用相同的方法(和其他许多错误的东西),但我没有成功地访问它的标签。

下面是我的代码片段:

代码语言:javascript
复制
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++;
}
EN

回答 1

Stack Overflow用户

发布于 2017-01-23 22:14:07

好吧,只是找到了这样做的方法。

labelling_edge(*ep.first)

麻烦你了,很抱歉

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41808277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档