gpt4 book ai didi

c++ - 如何在 BGL 图中获取 OutEdgeList

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:09:39 25 4
gpt4 key购买 nike

我使用由 boost 图形库制作的图形,并希望访问 OutEdgeList 以获取/设置一些内部信息(用于构建 OutEdgeList 的 vector 的保留大小)。

我广泛地搜索了文档,但没有找到返回指向 OutEdgeList 的引用或指针的函数/成员。

我的问题是是否有办法获取 OutEdgeList 图表,或者 boost 是否“保护”用户不直接弄乱其内部结构。

enter image description here

another question我找到了一个示例,您可以在其中直接使用 graph.m_edges 访问 EdgeList,也可以将其用作 vector 来执行 graph.m_edges.reserve(115960001),例如,所以我希望也应该有一种方法来访问 OutEdgeList。

感谢任何帮助!

最佳答案

获取 OutEdgeList 的正确方法是遍历所有 m_vertices 并访问它们的 m_out_edges 属性。

VertexIterator vi, vi_end;
for (boost::tie(vi, vi_end) = vertices(graph); vi != vi_end; ++vi){
graph.m_vertices[*vi].m_out_edges.reserve(6);
}

通过为每个顶点保留适当数量的边,我将内存使用量从 12GB 减少到 10.5GB。

我花了很长时间才找到成员,因为我预计他们会在 boost/graph/adjacency_list.hpp 中。但他们在boost/graph/detail/adjacency_list.hpp

关于c++ - 如何在 BGL 图中获取 OutEdgeList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43851630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com