【发布时间】:2021-07-03 06:28:47
【问题描述】:
考虑以下两个邻接列表:
#include <boost/graph/adjacency_list.hpp>
using Graph_1 = typename boost::adjacency_list<boost::vecS,
boost::vecS,
boost::directedS,
boost::no_property,
boost::property<boost::edge_weight_t, double> >;
Graph_1 graph_1(0);
struct VertexBundle { int some_int; };
struct EdgeBundle { double weight; };
struct GraphBundle { std::string name; };
using Graph_2 = typename boost::adjacency_list<boost::listS,
boost::listS,
boost::undirectedS,
VertexBundle,
boost::property<boost::edge_index_t, double, EdgeBundle>,
GraphBundle>;
Graph_2 graph_2(0);
它们的容器、有向类别以及为顶点、边和图形定义的属性不同。
现在,例如boost::detail::is_directed( boost::graph_traits<Graph>::directed_category ),我持有一个布尔值,无论Graph 类型的图是否有向,取自this SO question。
但是我如何才能读出有关 Graph Type 的属性的其他信息,尤其是该图定义了哪些内部/捆绑属性?
我找到了this boost docs page on graph_traits,但我不太了解它。对于初学者来说,boost graph 文档有点难以阅读……
感谢任何提示!
【问题讨论】:
标签: c++ templates boost boost-graph adjacency-list