如何使用Boost Graph Library创建一个named_graph?

时间:2012-05-10 18:43:42

标签: c++ boost boost-graph

我目前正在使用Boost Graph Library。我需要独特的边和顶点。不幸的是,增强图表并没有提供这个功能。因此,每次插入边或顶点之前,我都必须检查手册。

现在我发现了这个:http://www.boost.org/doc/libs/1_49_0/boost/graph/named_graph.hpp 我想知道这对我有用吗?因为文档说没有关于named_graph的说法,所以我不知道如何使用它。也许周围有人可以给我一些例子或言论?这对我有很大帮助。

提前致谢。

1 个答案:

答案 0 :(得分:3)

Boost Graph Library非常灵活,允许您选择顶点和边的内部表示。如果选择std :: set之类的容器,则可以直接强制使用唯一的顶点和边。详细信息如下:Using Adjacency List

named_graph类型允许您通过您可以自己选择的属性索引顶点(例如,表示名称的“字符串”)。它有效地将标准adjacency_list包装在一个映射中,该映射的键是命名属性,其值是节点。有一个很好的例子,说明如何在增强源named_vertices_test.cpp中使用它。

不确定你要做什么,但你可以自己使用std :: map / std :: set从一些独特的属性映射到adjacency_list中的节点。如果您只需要确保图形具有唯一的节点/边缘,那么这种方法既简单又简单,通常是最好的方法。

您应该考虑将支持的容器更改为std :: set的后果,例如,许多算法的性能会发生变化。没有简单的答案,哪个是最好的容器。