C++ 边上有映射列表的BGL图

C++ 边上有映射列表的BGL图,c++,boost,map,boost-graph,C++,Boost,Map,Boost Graph,我试图用Boost图形库创建一些特定的结构。 我需要有带有输入和输出端口的节点(顶点)。每个输出端口都可以连接到其他节点的任何输入端口。我希望能够检查特定的输出或输入端口是否连接到任何其他端口 其思想是使用std::map作为邻近列表内部的OutEdgeList 根据: 我只能选择std::vector、std::list、std::slist、std::set、std::multiset和std::hash_set中的一个。 (您可以选择mapS作为类型,但它是作为std::set实现的,我无

我试图用Boost图形库创建一些特定的结构。 我需要有带有输入和输出端口的节点(顶点)。每个输出端口都可以连接到其他节点的任何输入端口。我希望能够检查特定的输出或输入端口是否连接到任何其他端口

其思想是使用std::map作为邻近列表内部的OutEdgeList

根据: 我只能选择std::vector、std::list、std::slist、std::set、std::multiset和std::hash_set中的一个。 (您可以选择mapS作为类型,但它是作为std::set实现的,我无法通过键获取值)

我有几个问题:

  • 可以使用std::map吗?如果是,怎么做
  • 使用std::map时,如何迭代顶点的输入
  • 如果上述不可能,我如何实现该结构 适合这个问题吗

  • 谢谢大家!

    我不明白为什么map不能用作存储输出边的数据结构。Map有迭代器,其工作方式类似于说
    std::vector
    ,等等。要处理传入边,每个顶点上需要2个贴图。AFAIK BGL支持顶点上的两个列表


    我建议你修改(破解)BGL,看看会发生什么。变化可能不小。您必须为新类型的容器提供邻接列表专门化。最有可能的是,这会起作用。

    我最终切换到了没有BGL那么粗糙的地方。

    BGL的缺点是没有太多的使用,因为在代码编写过程中人们面临的许多问题是,没有太多的示例。