小编sun*_*nky的帖子

使用boost图库:如何通过从文件中读取边列表来创建图形

我是新手来增强图形库,我想通过从文件中读取边缘列表来创建图形.

edge_list.dat文件的示例如下:

...
123 445
4535 343
3432 454
123 345
123 566
...
Run Code Online (Sandbox Code Playgroud)

文件的每一行代表图形的边缘,每行中的两个数字是与边缘对应的节点ID.现在我想edge_list.dat使用boost图库从文件中创建一个图形.

但是,我事先并不知道图表的大小.我需要在整个过程中将顶点添加到图形中.但是,为每个顶点创建一个顶点描述符是不切实际的,如下所示:

Graph::vertex_descriptor v0 = boost::add_vertex(g);
Graph::vertex_descriptor v1 = boost::add_vertex(g);
Run Code Online (Sandbox Code Playgroud)

我想通过顶点id访问顶点.我真的不知道该怎么做.现在,我想出的解决方案是创建一个映射,其中键是id,值是vertex_descriptor:

std::map<int,Graph::vertex_descriptor> VertexList;
VertexList[123]=boost::add_vertex(g);
Run Code Online (Sandbox Code Playgroud)

但是有没有办法可以在不创建地图的情况下完成这项工作?

提前致谢.

c++ boost graph

7
推荐指数
1
解决办法
1935
查看次数

标签 统计

boost ×1

c++ ×1

graph ×1