impulsar la copia del gráfico y eliminar el vértice
¿Cómo copio un gráfico de impulso en un segundo gráfico de impulso para poder usar el descriptor de vértice extraído del primer gráfico para modificar el segundo sin modificar el primero?
Tengo un gráfico de impulsog1
del cual extraje un par de descriptores de vértices. Ahora quiero usar este descriptor de vértice para hacer un procesamiento en una copia deg1
nombradag2
. Si uso algo en la línea de:
g2 = g1;
para copiar el gráfico, entonces puedo acceder a las propiedades de vértice deg2
usando el descriptor de vértice extraído deg1
usando algo comog2[vertex_descriptor]
pero no puedo eliminar un vértice del gráfico.
boost::clear_vertex(v, _graph);
boost::remove_vertex(v, _graph);
No hace nada a mi gráfico y el vértice sigue ahí.
Sé que hay uncopy_graph
función disponible pero realmente no entiendo (o no sé cómo leer) elDoc y haciendoboost::copy_graph(g1, g2)
producir muchos errores:
In file included from /usr/include/boost/graph/adjacency_list.hpp:246:0,
from /home/malcolm/AASS/sketch_maker/includes/TopologicalMap/Global.hpp:6,
from /home/malcolm/AASS/sketch_maker/includes/MapComparator/Match.hpp:4,
from /home/malcolm/AASS/sketch_maker/includes/MapComparator/Hypothese.hpp:4,
from /home/malcolm/AASS/sketch_maker/includes/MapComparator/Cluster.hpp:4,
from /home/malcolm/AASS/sketch_maker/Test/test_comparisor.cpp:11:
/usr/include/boost/graph/detail/adjacency_list.hpp: In instantiation of ‘struct boost::adj_list_any_vertex_pa::bind_<boost::vertex_index_t, boost::adjacency_list<boost::listS, boost::listS, boost::undirectedS, topologicalmap::Place, topologicalmap::Gateway_struct, boost::no_property>, topologicalmap::Place>’:
/usr/include/boost/graph/detail/adjacency_list.hpp:2568:12: required from ‘struct boost::detail::adj_list_choose_vertex_pa<boost::vertex_index_t, boost::adjacency_list<boost::listS, boost::listS, boost::undirectedS, topologicalmap::Place, topologicalmap::Gateway_struct, boost::no_property>, topologicalmap::Place>’
/usr/include/boost/graph/detail/adjacency_list.hpp:2705:12: required from ‘struct boost::adj_list_vertex_property_selector::bind_<boost::adjacency_list<boost::listS, boost::listS, boost::undirectedS, topologicalmap::Place, topologicalmap::Gateway_struct, boost::no_property>, topologicalmap::Place, boost::vertex_index_t>’
/usr/include/boost/graph/properties.hpp:217:12: required from ‘struct boost::detail::vertex_property_map<boost::adjacency_list<boost::listS, boost::listS, boost::undirectedS, topologicalmap::Place, topologicalmap::Gateway_struct, boost::no_property>, boost::vertex_index_t>’
/usr/include/boost/graph/properties.hpp:228:10: required from ‘struct boost::property_map<boost::adjacency_list<boost::listS, boost::listS, boost::undirectedS, topologicalmap::Place, topologicalmap::Gateway_struct, boost::no_property>, boost::vertex_index_t, void>’
/usr/include/boost/graph/detail/adjacency_list.hpp:1688:5: required by substitution of ‘template<class Config, class Base, class Property> typename boost::property_map<typename Config::graph_type, Property>::const_type boost::get(Property, const boost::adj_list_helper<Config, Base>&) [with Config = boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::listS, boost::undirectedS, topologicalmap::Place, topologicalmap::Gateway_struct, boost::no_property>, boost::listS, boost::listS, boost::undirectedS, topologicalmap::Place, topologicalmap::Gateway_struct, boost::no_property, boost::listS>::config; Base = boost::undirected_graph_helper<boost::detail::adj_list_gen<boost::adjacency_list<boost::listS, boost::listS, boost::undirectedS, topologicalmap::Place, topologicalmap::Gateway_struct, boost::no_property>, boost::listS, boost::listS, boost::undirectedS, topologicalmap::Place, topologicalmap::Gateway_struct, boost::no_property, boost::listS>::config>; Property = boost::vertex_index_t]’
/usr/include/boost/graph/copy.hpp:353:57: required from ‘void boost::copy_graph(const VertexListGraph&, MutableGraph&) [with VertexListGraph = boost::adjacency_list<boost::listS, boost::listS, boost::undirectedS, topologicalmap::Place, topologicalmap::Gateway_struct, boost::no_property>; MutableGraph = boost::adjacency_list<boost::listS, boost::listS, boost::undirectedS, topologicalmap::Place, topologicalmap::Gateway_struct, boost::no_property>]’
/home/malcolm/AASS/sketch_maker/includes/MapComparator/Cluster.hpp:32:150: required from here
/usr/include/boost/graph/detail/adjacency_list.hpp:2498:29: error: forming reference to void
typedef value_type& reference;
^
/usr/include/boost/graph/detail/adjacency_list.hpp:2499:35: error: forming reference to void
typedef const value_type& const_reference;
^
/usr/include/boost/graph/detail/adjacency_list.hpp:2502:47: error: forming reference to void
<Graph, value_type, reference, Tag> type;
^
/usr/include/boost/graph/detail/adjacency_list.hpp:2504:53: error: forming reference to void
<Graph, value_type, const_reference, Tag> const_type;
^
In file included from /home/malcolm/AASS/sketch_maker/includes/TopologicalMap/GraphPlace.hpp:13:0,
from /home/malcolm/AASS/sketch_maker/includes/MapComparator/Cluster.hpp:5,
from /home/malcolm/AASS/sketch_maker/Test/test_comparisor.cpp:11:
/usr/include/boost/graph/copy.hpp: In instantiation of ‘void boost::copy_graph(const VertexListGraph&, MutableGraph&) [with VertexListGraph = boost::adjacency_list<boost::listS, boost::listS, boost::undirectedS, topologicalmap::Place, topologicalmap::Gateway_struct, boost::no_property>; MutableGraph = boost::adjacency_list<boost::listS, boost::listS, boost::undirectedS, topologicalmap::Place, topologicalmap::Gateway_struct, boost::no_property>]’:
/home/malcolm/AASS/sketch_maker/includes/MapComparator/Cluster.hpp:32:150: required from here
/usr/include/boost/graph/copy.hpp:353:57: error: no matching function for call to ‘get(boost::vertex_index_t, const boost::adjacency_list<boost::listS, boost::listS, boost::undirectedS, topologicalmap::Place, topologicalmap::Gateway_struct, boost::no_property>&)’
get(vertex_index, g_in), orig2copy[0]),
El mensaje de error es más grande que eso, pero solo tomé el principio.