Притворимся в следующих определениях и определениях типов:
#include <boost/graph/adjacency_list.hpp>
using namespace boost;
int main()
{
typedef adjacency_list<vecS, vecS, directedS, property<vertex_index_t, int> > GraphTC;
GraphTC g;
typedef typename property_map<GraphTC, vertex_index_t>::const_type VertexIndexMap;
VertexIndexMap index_map = get(vertex_index, g);
typedef typename graph_traits<GraphTC>::vertex_descriptor tc_vertex;
std::vector<tc_vertex> to_tc_vec(num_vertices(g));
iterator_property_map < tc_vertex *, VertexIndexMap, tc_vertex, tc_vertex&>
g_to_tc_map(&to_tc_vec[0], index_map);
}
У меня есть алгоритм, который выводит мне g и g_to_tc_map (как указано выше).Теперь мне нужно переставить узлы с помощью g_to_tc_map (я думаю, что-то вроде целочисленного массива или std :: map).
Примечание: я обнаружил, что есть повышение / график / детализация/permutation.hpp, но я понятия не имею, как его использовать (получение даже ошибок, включая этот файл, конфликт с другими заголовками).
Спасибо за любую идею / код, как сделать эту перестановку.