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