正确释放Vector等STL的内存

Posted jingdian1956

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正确释放Vector等STL的内存相关的知识,希望对你有一定的参考价值。

正确释放Vector等STL的内存
执行 clear() 之后内存并没有释放

《Effective STL》给出的解决方案是:
------------------------------------------------
vector<type> v;
//.... 这里添加许多元素给v
//.... 这里删除v中的许多元素

vector<type>().swap(v);
//此时v的容量已经尽可能的符合其当前包含的元素数量

//对于string则可能像下面这样
string().swap(s);

以上是关于正确释放Vector等STL的内存的主要内容,如果未能解决你的问题,请参考以下文章

vector释放内存之swap方法

带你深入理解STL之Deque容器

共享内存实现上的 C++ 内存池:这种分配和释放方法是不是正确?

STL之vector

如何释放队列(STL)占用的内存?

条目十三《尽量使用vector和string来代替使用数组》