如何正确释放或删除c ++向量?

use*_*521 1 c++

我在C++中有一个奇怪的向量问题..

我创建了一个向量并在其中插入了10000个整数值并检查了内存利用率.它是600 kb.但在我删除了矢量之后,我的系统监视器仍然表示该程序使用600 kb.

任何人都可以解释为什么即使在我擦除矢量后内存也没有被释放

注意:我已经使用了所有删除方法(erase,pop_front,pop_back,clear ...即便如此我也有同样的问题)

感谢致敬...:)

Duc*_*uck 9

大概你用一些系统实用程序检查了内存.即使在堆上释放了向量空间,也不意味着堆空间本身将返回到OS并反映在系统实用程序中显示的值中.


Joh*_*ell 5

真正摆脱std::vector<>前C++ 11中未使用内存的唯一方法是将其与空向量交换:vector<int>().swap(myvec).在C++ 11中,您有一个成员函数shrink_to_fit,它通常被实现为刚才提到的交换习惯用法.