问题描述
我成功地使用 boost 图的组件查找器来分配颜色,即组件的索引到我图中的每个顶点,如下所示:
#include <boost/graph/connected_components.hpp>
#include <boost/graph/adjacency_list.hpp>
boost::adjacency_list<boost::vecS,boost::vecS,boost::undirectedS> g;
std::vector<int> compon_map(boost::num_vertices(g));
int number_of_components = boost::connected_components(g,&compon_map[0]);
这将在我的模拟中的每次迭代后产生不同的 number_of_components
(未显示),因为我这样做
boost::clear_vertex(v,g);
在两者之间根据某些条件擦除一些边缘。
问题是,在我的模拟中,我想写出所有边的一些属性(比如权重),并且边迭代器的长度需要保持不变(数据集限制)。
因此,我的问题是:有没有办法像
一样传递一些边缘属性int L = boost::num_edges(g);
std::vector<bool> is_still_existent(L); // or
std::vector<double> edge_weights(L);
到 boost::connected_components
(然后仅根据该属性计算边)还是有另一种方法来欺骗边迭代器即使在删除边后仍保持初始长度?
预先感谢您的任何提示:)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)