如何确保在MULTIMAP的情况下分配的内存被释放

How can i make sure that memory allocated in case of MULTIMAP is freed

本文关键字:情况下 分配 内存 释放 MULTIMAP 何确保 确保      更新时间:2023-10-16

我有一个多映射,我想从中释放分配给多映射的内存。

我在Stackoverflow中的另一个问题中提出了一个与此相关的问题此代码将释放分配给MULTIMAP的内存吗。

我的问题是,在多映射中使用擦除是否可以确保为多映射分配的所有内存空间都被释放?

标准没有指定从容器中擦除元素是否会释放该元素的所有内存;唯一的保证是每个被擦除对象的析构函数将被调用一次。我无法想象为什么你可能需要保证内存被释放,但如果你这样做了,你就必须检查你正在使用的特定实现。

如果使用clear()(或带有begin()和end()的erase()),则多映射分配的项的所有内存都将释放。

这非常适用于例如stocking int。

如果你分配内存,然后在多映射中存储指针,你需要自己释放内存。

它"像往常一样"工作,你分配->你释放它,对于int、chars和multimap,由他们释放分配的内存。

相关文章: