在创建图形之前设置边属性
我正在生成一个 boost::graph
,有大约 300k 条边。我在循环中创建了一组边,在其中我还计算了边的一些属性。由于我需要所有边来创建图形,因此我还无法访问 edge_descriptor
。有没有办法做到这一点,而无需再次遍历整个集合?当我创建边缘时,我使用 std::pair
,这与描述符兼容吗?
I'm generating a boost::graph
, with some 300k edges. I create the set of edges in a loop, in which I also calculate some properties of the edges. Since I need all edges to create the graph, I don't have access to the edge_descriptor
s yet. Is there a way to do this without doing another pass over the entire set again? When I create my edges, I use std::pair<int, int>
, is this compatible with the descriptors?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您知道顶点数(那么您可以初始化图,然后可以稍后添加边)。如果您事先不知道顶点数,我不知道如何制作图。
如果您有顶点(即,如果您在获得顶点值后立即创建 vertex_descriptors),那么您可以使用函数 boost::add_edge(u,v,the_graph) 向图形添加边,在同一个循环中
假设您有这样的图和 vertex_descriptors:
那么
If you know the number of vertices(then you can initialize a graph and then you can add edges later).I have no idea how'd you make the graph if you do not know the number of vertices beforehand.
if you have vertices(i.e. if you make vertex_descriptors as soon as you get a value - for vertex) then you can add edges to the graph using the function
boost::add_edge(u,v,the_graph)
, in the same looplet's say you have the graph and vertex_descriptors like this:
then