ブーストbreadth_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;
ここNode_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」の使用にはタイプ引数リストが必要です)、2番目のコンパイルはC2664のみで中止されます:'boost :: put'パラメータ2を「void*」から「ptrdiff_t」に変換します。
だから問題は、どうすれば自分のカラーマッピング構造を使用できるかということです。追加の質問は次のようになります:特定のvertex_descriptorの色値を取得するにはどうすればよいですか?