我正在编写一个函数,使用BGL对图形执行一些计算 . 计算的方式取决于图形是否有定向,但我想避免编写两个不同的函数,一个用于无向图,一个用于有向图 . 两种类型的图形定义如下
using namespace boost;
// Undirected
typedef adjacency_list<listS, vecS, undirectedS> UGraph;
// Directed
typedef adjacency_list<listS, vecS, bidirectionalS> DGraph;
有没有办法从图形对象本身检查图形是否定向?换句话说,有没有办法从图形对象中知道所使用的“定向性”属性(即,无向性,双向性或有向性)?
1 回答
我在查看graph_utility.hpp中函数
print_graph()
的定义时找到了答案,这导致我在graph_traits.hpp中定义了函数is_directed()
.我想可能有更优雅的方法来做到这一点,但这是一个最小的工作示例:
哪个正确返回