boost :: graph:从一对顶点获取边缘的实现独立方式

时间:2013-07-18 21:37:13

标签: c++ boost-graph

我看了一下Boost图概念,但它没有提供任何接口来从一对顶点获取任何边。 我试过了:

boost::graph_traits<G>::edge_descriptor edge(u, v); // does not work

但它需要一个指向属性类型的附加指针。我怎么能得到它?

1 个答案:

答案 0 :(得分:1)

boost :: edge()的第三个参数是你的图。

另请注意,函数不会直接返回边描述符,而是包含边描述符和布尔值的对,具体取决于边的存在

这样的事情:

G myGraph;   // construct the graph
....         // populate it
....         // select a pair of vertices u, v

// get the edge between the vertices, if it exists
typedef boost::graph_traits<G>::edge_descriptor edge_t;
edge_t found_edge;
std::pair < edge_t, bool > p = boost::edge( u, v, myGraph ); 
if( ! p.second) {
   // edge does not exist
   ...
} else {
   found_edge = p.first;
   ...
}