c – 如何为我的图形提供vertex_index属性
发布时间:2020-12-16 03:44:42 所属栏目:百科 来源:网络整理
导读:由于我的图形使用setS for vertex,我必须为我的图形提供vertex_index属性映射,或者为write_graphviz提供一个显式的vertex_id参数,以便能够使用write_graphviz. 我的图形定义为:typedef adjacency_list setS,setS,undirectedS,NodeData,EdgeData图形; NodeDa
由于我的图形使用setS for vertex,我必须为我的图形提供vertex_index属性映射,或者为write_graphviz提供一个显式的vertex_id参数,以便能够使用write_graphviz.
我的图形定义为:typedef adjacency_list< setS,setS,undirectedS,NodeData,EdgeData>图形; NodeData和EdgeData是结构的地方. 你能给我一个如何为我的图提供vertex_index属性映射的一个非常简单的例子吗?或者如何给write_graphviz一个明确的vertex_id参数? 谢谢 解决方法
解决方案只是:
1)假设顶点描述符定义为typedef Graph :: vertex_descriptor NodeID;那么你需要定义一个关联属性映射如下: typedef map<NodeID,size_t> IndexMap; IndexMap mapIndex; associative_property_map<IndexMap> propmapIndex(mapIndex); 2)在代码中,索引所有顶点如下: int i=0; BGL_FORALL_VERTICES(v,g,Graph) { put(propmapIndex,v,i++); } 3)您现在可以使用graphvize来绘制/可视化您的图形,如下所示: ofstream myfile; myfile.open ("example.txt"); write_graphviz(myfile,default_writer(),propmapIndex); myfile.close(); 该图将在example.txt中描述,您可以使用graphviz对其进行可视化. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容