C++學習之路(vector::clear和vector::erase的區別)

Edisonlhz發表於2014-07-17

1、vector::clear()函式的作用是清空容器中的內容,但如果是指標物件的話,並不能清空其內容,必須要像以下方法一樣才能達到清空指標物件的內容:

vector<int*> xx;
for(int it=0;it!=xx.size();++it)
{
	delete xx[it];
}
xx.clear();


但並不回收記憶體,但你可以通過swap()函式來巧妙的達到回收記憶體的效果:

xx.clear();
xx.swap(vector<int>());

2、vector::erase()用於清空容器中的內容以及釋放記憶體,並返回指向刪除元素的下一個元素的迭代器。

相關文章