Я согласен с ответом 0x5453.Проще использовать именованные параметры перегрузки.Но если вы хотите знать, как инициализировать ColorMap
объект, вот ответ.
По умолчанию: iterator_property_map, созданный из std :: vector default_color_type размера num_vertices (g) ииспользуя i_map для карты индекса.
Graph g;
/*
* do something with graph
*/
// number of colors should be the same as number of vertices.
std::vector<boost::default_color_type> colors(boost::num_vertices(g));
// create a ColorMap object (cpp_version < 17)
auto color_map = boost::make_iterator_property_map(colors.begin(),
boost::get(boost::vertex_index, g));
// In C++17, make_iterator_property_map isn't necessary, as we have class
// template argument deduction
boost::iterator_property_map color_map(colors.begin(),
boost::get(boost::vertex_index, g));
Здесь make_iterator_property_map принимает два аргумента и возвращает iterator_property_map
.Первый аргумент - это итератор для значений цвета, а второй аргумент - это отображение между индексом вершины графа и colors
индексом.