关注联楷|返回首页 | 网站案例 | 帮助中心

合作共赢、快速高效、优质的网站建设提供商

上海网站建设 

服务热线:021-61394118

上海联楷科技

vector内存释放

作者:佚名   时间:2012-11-20   分享到:

clear()可以清空所有元素。 但是即使clear(),所占用的内存空间依然如故。如果你需要空间动态缩小,可以考虑使用 deque。如果非要用vector,这里有一个办法:

在《effective STL》和其实很多C++文章中都有指明,用clear()无法保证内存回收。但是swap技法可以。具体方法如下所示:
vector<int> nums;
nums.push_back(1);nums.push_back(1);nums.push_back(2);nums.push_back(2);
vector<int>().swap(nums); //或者nums.swap(vector<int> ());
或者如下所示 加一对大括号都可以,意思一样的:
{
std::vector<int> tmp =   nums;
nums.swap(tmp);
}    



如没特殊注明,文章均为上海联楷网络原创,转载请注明来自:http://www.linksj.com/contact/20151229/n7367.html

上海联楷网络新闻