如何确保在MULTIMAP的情况下分配的内存被释放
How can i make sure that memory allocated in case of MULTIMAP is freed
我有一个多映射,我想从中释放分配给多映射的内存。
我在Stackoverflow中的另一个问题中提出了一个与此相关的问题此代码将释放分配给MULTIMAP的内存吗。
我的问题是,在多映射中使用擦除是否可以确保为多映射分配的所有内存空间都被释放?
标准没有指定从容器中擦除元素是否会释放该元素的所有内存;唯一的保证是每个被擦除对象的析构函数将被调用一次。我无法想象为什么你可能需要保证内存被释放,但如果你这样做了,你就必须检查你正在使用的特定实现。
如果使用clear()(或带有begin()和end()的erase()),则多映射分配的项的所有内存都将释放。
这非常适用于例如stocking int。
如果你分配内存,然后在多映射中存储指针,你需要自己释放内存。
它"像往常一样"工作,你分配->你释放它,对于int、chars和multimap,由他们释放分配的内存。
相关文章:
- 为什么我可以在不重载 "=" 运算符的情况下将一个对象分配给另一个对象?
- 在什么情况下,两个堆栈分配的结构对象的 this 点指向同一个地址?
- 使用指针在存在特征库的情况下动态分配 c++ 中的矩阵
- 如何在不知道对应关系的情况下在字符串中搜索字符并将其分配给另一个字符?
- 为什么它在不分配内存的情况下工作正常
- 如何在不使用 "new" 关键字的情况下解除分配创建的对象的内存?
- 在不释放所有动态分配的资源的情况下结束程序是否有风险
- 在不工作的情况下为数组分配指针,但反过来也可以
- 在这种情况下,数组a会被取消分配吗
- (C++)如何在不导致 mem 泄漏的情况下将指针传递到分配了'new'的函数?
- 在不放置新运算符的情况下,在预分配的内存上使用虚函数初始化对象 - 这可能吗?如果没有,为什么
- 如何在没有动态内存分配(堆)的情况下为可变大小数组(矢量)定义安全容器或视图
- 是否可以在不分配内存或复制数据的情况下构造对象?
- 如何在不显示文本的情况下分配Win32编辑控件的窗口名称
- 在C++上给定布尔表达式的情况下分配整数值
- 如何确保在MULTIMAP的情况下分配的内存被释放
- Boost::在gcc4.6不工作的情况下分配一个大映射的静态初始化
- 特征:如何防止大型对象的额外副本;在RHS上未实现完整矩阵的情况下分配结果
- 如何在不调用C++中的构造函数的情况下分配实例变量
- 如何在不使用malloc或new操作符的情况下分配内存空间