我有一个增强图定义为
typedef boost::adjacency_list<boost::setS, boost::listS,
boost::undirectedS, CoordNode, CoordSegment> BGraph;
typedef boost::graph_traits<BGraph>::vertex_descriptor VertexDesc;
BGraph _graph;
我想知道相同图形的连通组件
int num = boost::connected_components(_graph, propMap);
我已经尝试使用创建所需的可写属性映射(propMap)
typedef std::map<VertexDesc, size_t> IndexMap;
IndexMap mapIndex;
boost::associative_property_map<IndexMap> propMap(mapIndex);
VertexIterator di, dj;
boost::tie(di, dj) = boost::vertices(_graph);
for(di; di != dj; ++di){
boost::put(propMap, (*di), 0);
}
但这不起作用;我得到编译错误 .
如果顶点容器是vecS,那将更容易,因为一个简单的数组或向量就足够了 . 但是如果我将listS作为顶点容器,我应该传递给这个函数么?
如何创建必要的可写属性映射?有人能举个例子吗?
1 回答
作品!