Boost Graph Verständnis Vertex-Erstellungsverhalten
Ich versuche, das Verhalten der Vertex-Erstellung mit der Funktion add_edge herauszufinden. Hier ist ein Beispiel
#include <iostream>
#include <boost/graph/adjacency_list.hpp>
#include <boost/graph/graph_traits.hpp>
using namespace boost;
typedef adjacency_list<> Graph;
typedef graph_traits<Graph>::vertex_iterator v_iter;
Graph g;
add_edge(1,2,g);
add_edge(1,4,g);
add_edge(2,3,g);
add_edge(2,6,g);
std::cout << "num edges: " << num_edges(g) << "; num vertices: " << num_vertices(g) << std::endl;
for (std::pair<v_iter,v_iter> vp = vertices(g); vp.first != vp.second; vp.first++) {
std::cout << *vp.first << " ";
}
kehrt zurück
bash-3.2$ ./main
num edges: 4; num vertices: 7
0 1 2 3 4 5 6
Warum werden diese Eckpunkte erstellt? Der Graph hat 1,2,3,4 und 6 als Eckpunkte, 5 insgesamt nicht 7. Es scheint, dass die Funktion Eckpunkte von 0 bis zum höchsten Wert eines Eckpunkts erstellt.
Ich weiß wirklich nicht, was hier los ist, also ist jede Hilfe sehr dankbar.
Vielen Dank im Voraus