Re: boost/graph поиск несвязаных между собой наборов вершин
От:
Аноним
Дата:
07.11.07 11:40
Оценка:
По всей видимости Вам необходимо использовать associative_property_map, он описан <boost\property_map.hpp>. Там есть вспомогательная функция make_assoc_property_map. Этот класс/функция используется для фтыкания ассоциативных контейнеров типа std::map в алгоритмы BGL в виде отображений свойств. Для определения "островов", то есть компонент связности, в Вашем случае неориентированного графа лучше использовать connected_components. Во всяком случае у меня получилось, правда для хранения вершин я использовал vecS. В вашем случае надо примерно так:
//потом где-то в вызове connected_components передать ass_map, примерно так
//int com_count=connected_components(graph, ass_map);
//или
//int com_count=connected_components(graph, make_assoc_property_map(comp_map));
потом уже из comp_map извлекать номер компоненты дял каждого дескриптора вершины.
Я так в принципе не делал, но думаю будет работать. А ввобще есть хорошая книжка на русском по Boost Graph Library, на Books.ru купил, не нарадуюсь