Я знаю, что std::vector<T>
внутренне сохраняет эти данные в соприкосновении (если это не std::vector<bool>
) как в старом C++03
, так и в новом C++11
.
Хорошие проблемы с stackoverflow, которые касаются этого и цитируют стандарт: answer, answer.
Как насчет данных внутри вложенных векторов std::vector <std::vector <T> >
? Как это хранится?
Если каждому внутреннему вектору необходимо хранить его данные смежно, как это может быть верно, что &v[n] == &v[0] + n for all 0 <= n < v.size()
.
К слову, это немного отличается, возможно ли доступ ко всем элементам, хранящимся в такой вложенной структуре, "просто" и последовательно (через указатель или аналогичный) так же, как это можно сделать для одномерного вектора?