c – 如何为我的图形提供vertex_index属性

前端之家收集整理的这篇文章主要介绍了c – 如何为我的图形提供vertex_index属性前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
由于我的图形使用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对其进行可视化.

猜你在找的C&C++相关文章