首页 文章

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

提问于
浏览
1

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

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

提前致谢 .

1 回答

  • 3

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

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

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

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

相关问题