与内存堆有关的C 链接列表(STD ::列表)是否使用新的
Does the C++ linked list (std::list) use new, in relation to a memory heap?
使用C 的Visual Studio;STD ::列表是否使用新来分配节点?我之所以问,是因为我将内存堆编码为挑战,如果它使用了新的,则降低了内存堆的有效性。
根据这个问题,内存堆,第一个答案:如何实现内存堆
如果它确实使用了新的,我将如何修复它(与使用上述问题答案中概述的内存堆的链接列表有关)?
)?谢谢。
stl容器(因为设计基于stl基于STL)中的C 标准中具有模板参数,该参数指定分配器。使用该分配器。它默认为库提供的分配器,但是您可以通过自己的自定义堆。
所有标准模板库容器都使用抽象(称为分配器)来分配内存,默认为 std::allocator<T>
。此默认分配器确实使用了新的,但这并不排除您使用的(写)一个不使用。
您可以从本文档中看到第二个模板参数是要使用的分配器。
是的,它确实通过其Allocator
参数间接使用new
。您可以编写使用堆的自定义分配器,并与之实例化 list
s。
是的,std :: list by默认使用std :: Aralocator,使用new
。
但是您可以编写自己的分配类别类,该类使用您想要的任何分配方案,并将其作为第二个模板参数传递给std :: list。
相关文章:
- 使用模板类的自定义列表类型中的内存泄漏
- 为什么这个 std::queue/指向结构的指针列表直到 List.Size() == 0 才释放内存?
- CertGetCertificateChain 具有支持的内存存储和证书信任列表
- Shared_ptr双链接列表内存泄漏
- 避免在使用链接列表从 deque 中删除最后一个节点时出现内存泄漏
- C 中的学生指针节点列表中的内存泄漏
- 我可以在 Boost.Spirit.Qi 中向列表运算符 (%) 提供内存分配提示吗?
- 使用初始值设定项列表的初始化类成员会导致内存泄漏
- 声明变量以保存字符串列表时的内存分配
- 如何在不泄漏内存的情况下删除链接列表
- 两个单链列表共享同一个节点和析构函数两次删除相同的内存
- 将节点添加到链接列表中,而无需明确分配内存空间(无需使用新)
- 这会导致使用链接列表的内存泄漏
- 链接列表C 的复制构造函数中的内存泄漏
- 存在内存泄漏问题的链接列表
- 使用动态内存从向前列表中泄漏
- 双链接结构列表的内存泄漏
- 布尔内存有效链接列表
- 在声明节点创建链接列表时,为什么静态内存分配不起作用
- C 链接列表内存错误