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.ktcbnqb.cn/contact/20151229/n7367.html