wiem, że std::vector<T>
wewnętrznie przechowuje To dane ciągły (chyba że jest std::vector<bool>
) zarówno w starym C++03
standardowej i nowej C++11
.std :: vector std :: wektory sąsiedztwo
Ładne pytania dotyczące stackoverflow, które dotyczą tego i podają standard: answer, answer.
Co z danymi wewnątrz zagnieżdżonych wektorów std::vector <std::vector <T> >
? Jak to jest przechowywane?
Jeśli każdy wewnętrzny wektor musi przechowywać dane w sposób ciągły, jak to może być prawdziwe, &v[n] == &v[0] + n for all 0 <= n < v.size()
.
Aby to zdanie było nieco inne, można uzyskać dostęp do wszystkich elementów przechowywanych w takiej strukturze zagnieżdżonej "po prostu" i kolejno (za pomocą wskaźnika lub podobnego) w ten sam sposób, w jaki można to zrobić dla wektora 1-D ?
+1 dla wskazując na wzrost zdolności wektora :) – LihO