在vector中添加500個元素:
vector <int> vecInt; for (int i=0;i<500;i++) { vecInt.push_back(i); } int j= vecInt.capacity(); //j=512 i = vecInt.size(); //i=500第一種辦法使用 clear ,清空元素,但不回收空間
vecInt.clear(); j= vecInt.capacity(); //j=512 i = vecInt.size(); //i=0第二種辦法使用 erase循環刪除,結果同上
vector <int>::iterator iter=vecInt.begin();for ( ;iter!=vecInt.end();){ iter=vecInt.erase(iter);}j= vecInt.capacity(); //j=512i = vecInt.size(); //i=0erase在每次操作時,迭代器指針會整體前移1,就是每次都會“搬”全部數據,所以vector不適合做頻繁刪除的容器
第三種辦法 最簡單的使用swap,清除元素并回收內存
vector <int>().swap(vecInt); //清除容器并最小化它的容量,// vecInt.swap(vector<int>()) ; 另一種寫法j= vecInt.capacity(); //j=0 i = vecInt.size(); //i=0vector<T>().swap(vec);//清空容器
新聞熱點
疑難解答