Estoy implementando un algoritmo en C++ con el Impulso Gráfico.
Quiero saber el vértice en el barrio de v (por lo tanto, todos sus vecinos), a continuación, cambiar una propiedad de su y finalmente borrar todos sus bordes.
He encontrado en el Impulso de la función adjacent_vertices(v,g)
(donde v es el vértice y g es la gráfica) para encontrar todos los vecinos. A continuación, quiero aplicar en todos ellos la función clear_vertex(v,g)
(de nuevo, v es el vértice y g es la gráfica) para eliminar todos los bordes.
En este punto, tengo un problema. El adjacent_vertices
la función devuelve un par de adjacency_iterator
, mientras que para el clear_vertex
función necesito vertex_iterator
(si he entendido bien cómo estas funciones de trabajo).
Por lo tanto, hay una manera fácil de transformar la adjacency_iterator
en vertex_iterator
? Si sigo el adjacency_iterator
y se pasa a la clear_vertex
la función, el problema es que no elimina los bordes (o eliminar de forma aleatoria a algunos vértices).
Mi mal código es:
Graph::adjacency_iterator v,vend;
for(boost::tie(v,vend) = neighbours; v != vend ; ++v) {
clear_vertex(*v,g2);
}