我正在尝试使用 Boost Graph Library 创建一些特定的结构。我需要有输入和输出端口的节点(顶点)。每个输出端口可以连接到其他节点的任何输入端口。我希望能够检查特定的输出或输入端口是否连接到任何其他端口。
这个想法是在 adjacency_list 中使用 std::map 作为 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 时如何遍历顶点的输入?
- 如果以上是不可能的,我该如何实现适合该问题的结构?
谢谢!