我正在尝试使用 Boost Graph Library 创建一些特定的结构。 我需要有带有输入和输出端口的节点(顶点)。每个输出端口可以连接到其他节点的任何输入端口。我希望能够检查特定输出或输入端口是否连接到任何其他端口。
这个想法是使用 std::map 作为 adjacency_list 内的 OutEdgeList。
根据:http://www.boost.org/doc/libs/1_52_0/libs/graph/doc/using_adjacency_list.html#sec:choosing-graph-type 我只能选择 std::vector、std::list、std::slist、std::set、std::multiset 和 std::hash_set 之一。 (你可以选择mapS作为类型,但它是作为std::set实现的,我无法通过键获取值)
我有几个问题:
- 可以使用 std::map 吗?如果是的话怎么办?
- 使用 std::map 时如何迭代顶点的输入?
- 如果上述不可能,我怎样才能实现这样的结构 适合这个问题吗?
谢谢!
最佳答案
我终于切换到了Lemon graph library这不像 BGL 那样 hacky
关于c++ - 边缘列表上带有 map 的 BGL 图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13375368/