Boost Graph 可以根据权重找到连通分量吗?

问题描述

我成功地使用 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 (将#修改为@)