在Boost图库中,何时应该使用顶点描述符以及何时使用 index ?由于vertex_descriptor
的实现实际上是无符号整数,这两个东西是否具有相同的值?
答案 0 :(得分:16)
当您使用向量(或类似)作为顶点的基础数据结构(即vertex_descriptor
)时,boost::vecS
只是一个索引。如果使用不同的底层数据结构,则顶点描述符不一定是索引。例如,如果您使用std::list
/ boost::listS
- 列表不使用基于索引的访问方法。相反,每个vertex_descriptor
将成为指向列表项的指针。
因此,每次要在图表中引用顶点时,都应使用vertex_descriptor
。这样,如果您以后决定使用不同的数据结构,则无需更改代码。
有关不同EdgeList
和VertexList
数据类型及其优缺点的详细信息,请参阅Using Adjacency List页。