プロジェクトで Boost Graph Library を使用しており、次のように宣言されています。
typedef adjacency_list <listS, listS, undirectedS, TrackInformation, LinkInformation> TracksConnectionGraph;
グラフで connected_components を呼び出さなければならないまでは、うまくいっています。
typedef std::map<TracksConnectionGraph::vertex_descriptor, TracksConnectionGraph::vertices_size_type> component_type;
component_type component;
boost::associative_property_map< component_type > component_map(component);
int num_components = connected_components(tracks_connection_graph_, component_map);
VertexList=listS の場合、頂点のプロパティとして vertex_index がないことが問題のようです。これにより、connected_components で次のようなエラーが発生します。
/usr/local/include/boost-1_39/boost/property_map.hpp: メンバー関数内 'R boost::iterator_property_map::operator[](typename boost::property_traits::key_type) const [with RandomAccessIterator = __gnu_cxx::__normal_iterator 、IndexMap = boost::adj_list_vertex_property_map、boost::detail::error_property_not_found、const boost::detail::error_property_not_found&、boost::vertex_index_t>、T = boost::default_color_type、R = boost::default_color_type&]':
問題は、頂点のプロパティとして vertex_index を追加するにはどうすればよいかということです。
追加すると、add_vertex、remove_vertex などを呼び出すたびに、頂点ごとにこの情報を更新する必要があるということですか?