假设我在C++中创建了一个STL映射对象,即map<string,char>mymap``$
。现在,我想知道内存是如何分配给这个对象的?我的困惑之处在于没有动态分配,我们不知道之前的容器大小。那么,从哪里以及如何将内存分配给对象mymap?C++ STL对象的内存分配
0
A
回答
1
那么,从哪里以及如何将内存分配给对象mymap?
所有标准容器的默认分配器是std::allocator
,从容器获取内存的位置和释放位置到内存的完成位置。您可以使用自定义分配器,然后根据需要跟踪所有分配和释放。
3
没有动态分配
肯定有,但它的引擎盖下。 std::map
通常以树的形式存储,因此无论何时将新对象插入新节点,都会分配新节点。动态。仅仅因为你没有明确写出new
,并不意味着它不会发生。
在std::map
的析构函数上,节点被自动删除。但请注意,如果节点包含动态分配的对象,则这些对象不会被地图删除。
+0
请让我知道,如果内存是动态分配的,那么在引擎盖下是否释放内存? – nirprat 2012-07-16 19:58:00
+0
@nirprat是的,读最后一个短语。 – 2012-07-16 20:06:58
相关问题
- 1. java中对象的内存分配
- 2. 检查对象的内存分配
- 3. 类对象的内存分配
- 4. 对象的动态内存分配
- 5. C++ STL内存分配器编译错误
- 6. C++ stl库容器具有动态内存分配?
- 7. objective-c分配的两个对象具有相同的内存?
- 8. C内存分配
- 9. 内存分配,C++
- 10. C++分配内存
- 11. JSON对象内存分配vs变量
- 12. 嵌套对象内存分配?
- 13. C#对象分配
- 14. C++分配对象?
- 15. C++ - 游戏引擎中的内存池和对象分配
- 16. 在连续的内存块中分配objective-c对象
- 17. C++ STL问题:分配器
- 18. 我自己的STL内存分配器的分段错误
- 19. 在大对象堆内存中预分配一些内存
- 20. C++中的内存分配
- 21. C中的内存分配
- 22. C++中的内存分配
- 23. C++中的对象分配
- 24. C++何时会在新对象中分配内存?
- 25. 在C++中为这个对象分配内存
- 26. 内存泄漏在C /内存分配++
- 27. C++内存分配问题
- 28. 目标C:分配内存
- 29. C++:内存分配器
- 30. 内存分配在C
当然有动态分配(可能不一定是从开始,但肯定是在开始插入东西后)。这只是在课堂上。 – Jon 2012-07-16 19:43:12