我有一個關於C++ STL的(可能是愚蠢的)問題。當我創建一個容器(矢量,集合,地圖等)時,它是分配在堆棧上還是分配在堆上?如果我創建一個集合並放置500萬個字符串,我是否會擔心堆棧溢出?C++ STL問題:分配器
6
A
回答
9
STL類默認從堆中分配它們的內部緩衝區,雖然這些類也允許自定義分配器,它們允許用戶指定從 - 共享內存池。
3
STL容器的默認分配器使用operator new和delete,所以它是任何用於包含類型的路由。 (一般來說,它來自堆,除非你做了一些改寫。)
你不會因爲分配500萬個字符串而導致堆棧溢出。即使你創建了一個基於堆棧的分配器,它甚至會在你插入一個字符串之前溢出。
0
容器本身是在你決定的地方分配的(它可以是堆棧,堆,對象的成員等),但它使用的內存默認情況下是其他內容所描述的,新的和刪除),這是不一樣的堆(通過malloc /免費管理)。
相關問題
- 1. C++ STL分配器VS運營商新
- 2. C++符合STL的分配器
- 3. 什麼分配器在STL
- 4. C++ STL:問題與迭代器
- 5. 爲什麼這個C++ STL分配器沒有分配?
- 6. STL的TCMalloc分配器
- 7. STL容器內存問題
- 8. C++內存分配問題
- 9. C++分配內存問題
- 10. 在C++中重載stl :: map的分配器和釋放器
- 11. C++自定義分配器和STL容器
- 12. 爲C++ STL隊列預分配空間
- 13. C++ STL對象的內存分配
- 14. 如何爲動態分配的stl容器設置分配器?
- 15. 替換默認的STL分配器
- 16. STL向量分配
- 17. STL練習問題
- 18. STL容器分配和const指針
- 19. STL分配器和運算符new []
- 20. C++ STL容器
- 21. MSVC中的C++自定義STL分配器錯誤?
- 22. 用於C++的擴展包裝malloc分配器STL
- 23. C++ STL內存分配器編譯錯誤
- 24. C++ stl庫容器具有動態內存分配?
- 25. C++ STL版本問題+提升
- 26. C++/STL Graphviz和Boost - Seg Fault問題
- 27. C++編譯爲iPhone(STL問題?)
- 28. C + + STL unordered_map問題和疑惑
- 29. STL ::地圖問題
- 30. STL list_iterator代碼問題(STL 4.0.0)