2010-03-05 11 views

Respuesta

19

El vector está asignado en la pila (28 bytes en mi sistema). Los contenidos vectoriales se asignan en el montón.

3

Para ampliar la respuesta de Yacoby, RAII significa que cuando vi sale del ámbito, cualquier cosa asignado con new (dentro del vector) es delete d (en destructor del vector). Así es como se mezclan la asignación de pila y montón.

5

Puede cambiar la forma en que se asigna la memoria para contenedores STL con la combinación de tipo de plantilla de asignación y el objeto asignador pasado al constructor.

Hice una pregunta sobre cómo hacer un almacenamiento de pila de uso de vector y obtuve this answer. Puede que le resulte interesante.

+0

+1 Muy interesante ... – Skilldrick

+0

Definitivamente +1 de mí. – Yacoby

3

El vector se asigna dondequiera que el allocator que utiliza decide asignar. En el caso predeterminado std::allocator, usa ::operator new().

Cuestiones relacionadas