我想使用 boostsbreadth_first_visit
方法,我想为它提供我自己的“外部”颜色图。我将图表定义如下
typedef boost::adjacency_list<boost::setS, boost::listS, boost::undirectedS,
boost::property<boost::vertex_index_t, int,
boost::property<boost::vertex_color_t, boost::default_color_type,
Node_t>>> GraphType;
whereNode_t
是一个结构,定义顶点的属性。但是,我不知道如何为 BFS 提供我自己的颜色图。我想将顶点颜色存储在向量中,所以我的定义看起来像
std::vector<boost::default_color_type> colors;
但我不知道如何将其用于 bfs。
两者都不
boost::breadth_first_search(g, *boost::vertices(g).first,
boost::color_map(colors));
也不
boost::breadth_first_search(g, *boost::vertices(g).first,
boost::color_map(&colors[0]));
正在工作中。虽然第一个给了我一堆不同的编译器错误(例如,不支持 default-int,“boost::color_traits”使用类类型需要类型参数列表)第二个编译中止,只有 C2664:“boost::put”不能将参数 2 从“void*”转换为“ptrdiff_t”。
所以问题是:我如何使用我自己的颜色映射结构。另一个问题是:如何获取特定顶点描述符的颜色值?