本文主要是介绍vector利用swap()函数进行 内存的释放 或者 修整空间,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在《effective STL》指明,用clear()无法保证内存回收。但是swap技法可以。具体方法如下所示:
1、释放内存:
vector<int> ivec;vector<int>().swap(ivec); //或者 ivec.swap(vector<int>());//vector<char *>().swap(file_list_);
2、修整空间
vector<int>(ivec).swap(ivec); // 或者 ivec.swap(vector<int>(ivec));
并不是所有的STL容器的clear成员函数的行为都和vector一样。
事实上,其他容器的clear成员函数都会释放其内存。
这篇关于vector利用swap()函数进行 内存的释放 或者 修整空间的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!