std :: vetor de contiguidade std :: vetores
Eu sei dissostd::vector<T>
internamente armazena seus dados de forma contígua (a menos que sejastd::vector<bool>
) tanto no antigoC++03
padrão e o novoC++11
.
Perguntas agradáveis sobre o stackoverflow que lidam com isso e citam o padrão:responda, responda.
E quanto aos dados dentro de vetores aninhadosstd::vector <std::vector <T> >
? Como isso é armazenado?
Se cada vetor interno precisa armazenar seus dados de forma contígua, como pode ser verdade que&v[n] == &v[0] + n for all 0 <= n < v.size()
.
Para expressar isso um pouco diferente, é possível acessartodos os elementos armazenado em tal estrutura aninhada "simplesmente" e sequencialmente (através de um ponteiro ou similar) da mesma forma que pode ser feito para um vetor 1-D?