Tengo una pregunta (potencialmente tonta) sobre C++ STL. Cuando hago un contenedor (vector, conjunto, mapa, etc.), ¿está asignado en la pila o en el montón? Si hago un conjunto y pongo 5 millones de cadenas, ¿tendré que preocuparme por un desbordamiento de pila?C++ Pregunta STL: asignadores
Respuesta
Las clases de STL asignan de forma predeterminada sus almacenamientos intermedios internos del montón, aunque estas clases también permiten asignadores personalizados que permiten a un usuario especificar una ubicación alternativa para asignar desde, p. un grupo de memoria compartida.
El asignador predeterminado para contenedores STL utiliza operador new y delete, por lo que es el que sea esa ruta para el tipo que se contiene. (En general, proviene del montón a menos que haga algo para anularlo).
No obtendrá un desbordamiento de la pila al asignar 5 millones de cadenas. Incluso si creó un asignador basado en pila, probablemente se desbordará antes de insertar una cadena.
El contenedor en sí se asigna donde usted decida (puede ser la pila, el montón, el miembro de un objeto, etc.) pero la memoria que utiliza es, de forma predeterminada, como otros describen, tomada en Free Store (administrado por nuevo y eliminar) que no es lo mismo que el montón (administrado a través de malloc/free).
- 1. C++ Asignadores conforme a STL
- 2. Asignadores de STL y operador nuevo []
- 3. compatibilidad del compilador para asignadores con estado en contenedores STL
- 4. C++: Asignadores de memoria
- 5. ¿Los asignadores personalizados en STL solo asignan los datos reales?
- 6. Asignadores personalizados STL para administrar diferentes espacios de memoria
- 7. Para STL o! STL, esa es la pregunta
- 8. ¿Ejemplos convincentes de asignadores de C++ personalizados?
- 9. Contenedor STL: Parámetro del asignador de constructor y asignadores de ámbito
- 10. Asignadores de memoria de subprocesos múltiples para C/C++
- 11. C++ UNICODE y STL
- 12. C equivalente de C++ STL
- 13. Búsqueda binaria C++ STL
- 14. C++ STL con jemalloc
- 15. C error STL ++ quitar
- 16. C Analógico a STL
- 17. RAII y C++ STL
- 18. C++ sin STL
- 19. C++: STL multimap.equal_range()
- 20. C/C++ Puntero Pregunta
- 21. (C) ¿Tácticas de implementación para los asignadores de pila?
- 22. Una pregunta sobre la sintaxis de la plantilla C++ (código fuente de la biblioteca STL)
- 23. Expresiones regulares en C++ STL
- 24. cadenas Relleno STL en C++
- 25. Pregunta sobre C# covarianza
- 26. C++ - boost obtener pregunta
- 27. C# plugin arquitectura pregunta
- 28. C pregunta # alcance
- 29. C# Propiedades - Establecer pregunta
- 30. C++ pregunta const