我有一个定义如下所示的邻接列表。此时我需要将 vertex_descriptor 作为 int 类型访问。我怎么能做到这一点tvertex source = ...; int source_as_int = ???source???
我记得以前遇到过同样的问题并解决了它,但不记得如何使用它作为参考,而且 BGL 文档没有用,他们应该尝试查看 Javadocs 并从中学习。
另一种可能性是为此目的使用该类型的可能成员函数vertex_descriptor
或其他一些全局 BGL 函数......人们永远不知道在哪里寻找这个,他们似乎在制作全局函数或成员函数之间随机选择,总共如果你问我,直觉设计就失败了。
typedef adjacency_list_traits<setS, setS, bidirectionalS> ttraits;
typedef adjacency_list<setS, setS, bidirectionalS,
// vertex properties
property<vertex_color_t, default_color_type>,
// edge properties
property<edge_capacity_t, int,
property<edge_residual_capacity_t, int,
property<edge_reverse_t, ttraits::edge_descriptor> > >, no_property, vecS> tbgl_adjlist_bidir;
typedef graph_traits<tbgl_adjlist_bidir>::vertex_descriptor tvertex;
typedef graph_traits<tbgl_adjlist_bidir>::edge_descriptor tedge;
typedef property_map<tbgl_adjlist_bidir, edge_capacity_t>::type tedge_capacity_map;
typedef property_map<tbgl_adjlist_bidir, edge_reverse_t>::type treverse_edge_map;
typedef property_map<tbgl_adjlist_bidir, vertex_color_t>::type tvertex_color_map;
typedef graph_traits<tbgl_adjlist_bidir>::out_edge_iterator tout_edge_iterator;
typedef graph_traits<tbgl_adjlist_bidir>::in_edge_iterator tin_edge_iterator;