Sé que std::vector<T>
almacena internamente los datos de forma contigua (a menos que sea std::vector<bool>
) tanto en el antiguo C++03
estándar y el nuevo C++11
.std :: vector de std :: vectores de contigüidad
Nice stackoverflow preguntas que tratan con esto y citan el estándar: answer, answer.
¿Qué pasa con los datos dentro de los vectores anidados std::vector <std::vector <T> >
? ¿Cómo se almacena eso?
Si cada vector interno necesita almacenar sus datos de forma contigua, ¿cómo puede ser cierto que &v[n] == &v[0] + n for all 0 <= n < v.size()
.
Para frase esta ligeramente diferentes, es posible el acceso a todos los elementos almacenado en tal estructura anidada "simplemente" y secuencialmente (a través de un puntero o similar) de la misma manera que se puede hacer para un vector 1-D ?
1 por señalar el crecimiento de la capacidad vectorial :) – LihO