gpt4 book ai didi

c++ - C++ STL 对象的内存分配

转载 作者:行者123 更新时间:2023-11-27 23:22:59 25 4
gpt4 key购买 nike

假设我正在用 C++ 创建一个 STL 映射对象,即 map<string,char>mymap``$ .现在,我想知道内存是如何分配给这个对象的?我的困惑点是没有动态分配,我们事先不知道容器的大小。那么,从哪里以及如何为对象 mymap 分配内存?

最佳答案

there is no dynamic allocation

当然有,但它在引擎盖下。 std::map 通常存储为一棵树,因此每当向其中插入新对象时都会分配一个新节点。动态地。仅仅因为您没有显式编写 new,并不意味着它不会在幕后发生。

std::map 的析构函数中,节点被自动删除。但是请注意,如果节点包含动态分配的对象,则这些对象不会被映射删除。

关于c++ - C++ STL 对象的内存分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11511381/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com