【发布时间】:2013-06-25 18:44:48
【问题描述】:
我希望能够有一个地图,其中值是指向地图的指针。类似的东西
std::map<KeyType, const_pointer_to_this_map's_value_type>
我知道我可以使用 const void * 代替 const_pointer_to_this_map's_value_type。
我见过循环数据类型定义的技巧,例如https://gist.github.com/tivtag/1208331 或http://qscribble.blogspot.fr/2008/06/circular-template-references-in-c.html,但我不确定它们是否以及如何应用于我的案例。
他们使用自己的类(Vertex 和 Edge;A 和 B),但这里的 std::map 和 std::map::value_type 已经在 STL 头文件中定义,我不能只用组合类。
有没有办法定义上面的地图?
【问题讨论】:
-
我检测到一个 XY 问题。你为什么想要这样的东西?
-
听起来他正在编写一个有向图,其中每个节点都有一条出边。
-
如果你想定义图表,使用Boost.Graph
-
我不能推荐 boost.graph。我在一个项目中使用过它,恕我直言,它比它的价值更丑陋。最终解决了它的局限性,而不是利用它的任何优势。除非您真正创建了一组通用图算法,否则不值得痛苦。