【发布时间】:2016-04-07 16:55:22
【问题描述】:
在Boost图形库中,什么时候应该使用顶点描述符,什么时候应该使用index?既然vertex_descriptor的实现其实是无符号整数,那么两者的值是一样的吗?
【问题讨论】:
标签: c++ boost boost-graph
在Boost图形库中,什么时候应该使用顶点描述符,什么时候应该使用index?既然vertex_descriptor的实现其实是无符号整数,那么两者的值是一样的吗?
【问题讨论】:
标签: c++ boost boost-graph
vertex_descriptor 仅当您使用向量(或类似)作为顶点的基础数据结构(即boost::vecS)时才是索引。如果您使用不同的底层数据结构,则顶点描述符不一定是索引。例如,如果您使用 std::list/boost::listS - 列表不使用基于索引的访问方法。相反,每个vertex_descriptor 将改为指向列表项的指针。
因此,每次您想引用图中的顶点时,都应该使用vertex_descriptor。这样,如果您以后决定使用不同的数据结构,就不必更改代码。
有关不同的 EdgeList 和 VertexList 数据类型及其优缺点的详细信息,请参阅 Using Adjacency List 页面。
【讨论】: