Prawdą jest, że klasa vector gwarantuje ciągłość danych. Jednak te dane znajdują się na stercie i mogą być przenoszone w inne miejsce pamięci podczas rozszerzania wektora.
Wektor wektorów zapewnia, że struktury tych wektorów będą znajdować się w ciągłej pamięci obok siebie, ale wewnętrzne wskaźniki na dane będą wskazywać na inne miejsce w pamięci. Blok danych każdego wewnętrznego wektora może się znajdować w zupełnie innym miejscu w pamięci.
cout << V.data() << endl;
for (auto &v : V) {
// początek bloku koniec bloku
cout << v.data() << " " << v.data() + v.size()*sizeof(v[0]) << endl;
}