在Boost图库中,何时应该使用顶点描述符和何时使用索引?既然执行vertex_descriptor
实际上是无符号整数,那么这两个东西是否具有相同的值?
vertex_descriptor
当您使用向量(或类似)作为顶点的基础数据结构(即boost::vecS
)时,它只是一个索引.如果使用不同的底层数据结构,则顶点描述符不一定是索引.例如,如果使用std::list
/ boost::listS
- 列表,则不使用基于索引的访问方法.相反,每个都vertex_descriptor
将是一个指向列表项的指针.
因此,每次要引用图形中的顶点时,都应该使用vertex_descriptor
.这样,如果您以后决定使用不同的数据结构,则无需更改代码.
有关不同EdgeList
和VertexList
数据类型以及每种类型的优缺点的更多信息,请参阅使用邻接列表页面.