【发布时间】:2014-04-29 10:57:16
【问题描述】:
我是 boost 图形库的新手,我想通过从文件中读取边列表来创建图形。
edge_list.dat 文件的示例如下:
...
123 445
4535 343
3432 454
123 345
123 566
...
文件的每一行代表图的一条边,每行的两个数字是边对应的节点id。现在我想使用 boost 图形库从文件 edge_list.dat 创建一个图形。
但是,我事先不知道图表的大小。我需要沿途将顶点添加到图中。然而,像这样为每个顶点创建一个顶点描述符是不切实际的:
Graph::vertex_descriptor v0 = boost::add_vertex(g);
Graph::vertex_descriptor v1 = boost::add_vertex(g);
我想通过顶点 id 访问顶点。我真的不知道该怎么做。目前我想出的解决方案是创建一个映射,其键是 id,值是 vertex_descriptor:
std::map<int,Graph::vertex_descriptor> VertexList;
VertexList[123]=boost::add_vertex(g);
但是有没有一种方法可以在不创建地图的情况下做到这一点?
提前致谢。
【问题讨论】: