The boost function boost::graph::copy_graph
template <class VertexListGraph, class MutableGraph> void
copy_graph(const VertexListGraph& G, MutableGraph& G_copy,
const bgl_named_params<P, T, R>& params = all defaults)
lists in its parameter description
UTIL/OUT: orig_to_copy(Orig2CopyMap c)
which is a mapping from vertices in copy to vertices in original. I need this mapping!
(scroll to bottom on http://www.boost.org/doc/libs/1_55_0/libs/graph/doc/copy_graph.html)
How can I access/provide this last parameter orig_to_copy? Can you give a code example, ie complete this code for me?
void doSomething(graph_t& g){
graph_t g_copy;
copy_graph(g, g_copy, [...???...]);
// here I would like to access the Orig2CopyMap
}
Something like this:
typedef boost::graph_traits<graph_t>::vertex_descriptor vertex_t;
typedef boost::property_map<graph_t, boost::vertex_index_t>::type index_map_t;
//for simple adjacency_list<> this type would be more efficient:
typedef boost::iterator_property_map<typename std::vector<vertex_t>::iterator,
index_map_t,vertex_t,vertex_t&> IsoMap;
//maps vertices of g to vertices of g_copy
std::vector<vertex_t> isoValues( num_vertices(g));
IsoMap mapV( isoValues.begin());
boost::copy_graph( g, g_copy, boost::orig_to_copy(mapV) ); //means g_copy += g