2010-03-05 14 views

risposta

19

Il vettore è allocato sulla pila (28 byte sul mio sistema). I contenuti vettoriali sono allocati nell'heap.

3

Per espandere sulla risposta Yacoby, RAII significa che quando vi va fuori portata, nulla allocato con new (all'interno del vettore) è delete d (in distruttore del vettore). È così che si mescolano stack e heap allocation.

5

È possibile modificare la modalità di allocazione della memoria per i contenitori STL con la combinazione del tipo di modello Allocator e l'oggetto allocator passato al costruttore.

Ho fatto una domanda su come creare un vettore per l'archiviazione dello stack e ottenuto this answer. Potrebbe essere interessante.

+0

+1 Molto interessante ... – Skilldrick

+0

Definito +1 da me. – Yacoby

3

Il vector viene assegnato ovunque lo allocator utilizza da cui decide di allocare.

Nel caso predefinito di std::allocator, utilizza ::operator new().

Problemi correlati