【发布时间】:2017-05-08 15:31:48
【问题描述】:
我使用由 boost 图形库制作的图形,并希望访问 OutEdgeList 以获取/设置一些内部信息(用于构建 OutEdgeList 的向量的保留大小)。
我广泛搜索了文档,但没有找到返回指向 OutEdgeList 的引用或指针的函数/成员。
我的问题是,是否有办法获取图表 OutEdgeList,或者 boost 是否“保护”用户不直接弄乱其内部结构。
在another question 中,我发现了一个示例,您可以使用graph.m_edges 直接访问EdgeList,也可以将其用作向量来执行graph.m_edges.reserve(115960001),因此我希望也应该有一种访问OutEdgeList 的方法也是。
任何帮助表示赞赏!
【问题讨论】:
-
所以如果正确理解返回一对开始-结束迭代器的'edges'函数不足以满足你的需求?
-
你是对的 :) 因为在我看来,拥有边缘迭代器并不能让我操纵它正在迭代的向量,而这是我想要操纵的成员。
-
我不能确定,但逻辑是他们试图抽象底层数据结构(它也可能是一个 std::list 或一个 std::set 存储边缘),在公共接口中放置一个允许访问 std::vector 的方法将违反此规定。
-
但它也适用于 EdgeProperties。它们也作为模板参数传递,我可以得到其背后的具体数据结构。模板给出的成员并返回成员没有冲突...
标签: c++ boost boost-graph