ブーストグラフは次のように定義されています
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がある場合、この関数に何を渡す必要がありますか?
必要な書き込み可能なプロパティマップを作成するにはどうすればよいですか?誰かが私に例を教えてもらえますか?