注册 登录
编程论坛 C++教室

【BGL】print_vertices的第二个参数

蚕头燕尾 发布于 2013-12-18 22:32, 427 次点击
我是想写一个算法,要处理的图的结点以及边的信息之前是未知的,传入的参数只有从文件读入的邻接矩阵信息。

自己找的例子里面一般都是定义一个枚举量,那样的话结点的数目就被限定死了,不是我想要的效果的。

于是打算通过1、2、3……这样的方式给结点编号,而非事先在代码里枚举一些A、B、C……之类的。

我的问题是:

print_vertices的第二个参数是一个字符串,如果我安装123的方式编号,传入的参数势必是“123456789101112……”,

该如何知道我的编号是10这个数字而非分别对两个结点编号为1和0?

这个函数是把字符串里的一个字符当做一个编号进行处理的,显然去改造BGL里的这个函数是不太现实的,我该怎么传参或者怎么使用这个函数才能实现我想要的结果呢?

PS:函数位置如下#include<boost\graph\graph_utility.hpp>

3 回复
#2
yuccn2013-12-19 08:25
传入时候,用个分隔符分开把,比如
12345表示1 、2、3、4、5时候用1#2#3#4#5.
或者约定长度,比如用固定4(根据你需要定这个值)位数,比如12345表示1、2、3、4、5 用00010002000300040005

方法是很多的,只是总的有个约定,不然,神也不知道
#3
rjsp2013-12-19 08:35
没用过boost,我Google了一下,似乎print_vertices的第二个参数除了传字符串,还可以传其它类型,比如 property_map<Graph, vertex_id_t>::type

ref:http://www.
#4
蚕头燕尾2013-12-21 21:53
我也是初次接触

我想我得再学习一下

回头再对二位的回答做评论~

先谢过~

1