So che std::vector<T>
memorizza internamente di dati in modo contiguo (a meno che sia std::vector<bool>
) sia nella vecchia C++03
standard e la nuova C++11
.std :: vector di std :: vettori contiguità
Belle domande StackOverflow che trattano questo e citano lo standard: answer, answer.
E i dati all'interno dei vettori nidificati std::vector <std::vector <T> >
? Come viene memorizzato?
Se ogni vettore interno deve memorizzare i dati in modo contiguo, come può essere vero che &v[n] == &v[0] + n for all 0 <= n < v.size()
.
Per frase questo leggermente differente, è possibile l'accesso tutti gli elementi memorizzati in tale struttura annidata "semplicemente" e sequenzialmente (tramite un puntatore o simile) nello stesso modo può essere fatto per un vettore 1-D ?
+1 per indicare la crescita della capacità di vettore :) – LihO