vector vecnum;
vecnum.push_back(1);
//1. clear(),清空元素,但不**空間
vecnum.clear();
//2. 使用 erase迴圈刪除,結果同上
vector::iterator it;
for (it = vecnum.begin(); it != vecnum.end(); )
cout << "new2: size = " << vecnum.size() << " ; capacity = " << vecnum.capacity() << endl;
//結論:erase在每次操作時,迭代器指標會整體前移1,就是每次都會移動全部資料,所以vector不適合做頻繁刪除的容器
//3. 最簡單的使用swap,清除元素並**記憶體
vector().swap(vecnum);
//列印vector的大小和容量
cout << "new2: size = " << vecnum.size() << " ; capacity = " << vecnum.capacity() << endl;
使用STL vector的幾種清空容器(刪除)辦法
在vector中新增500個元素 vector vecint for int i 0 i 500 i int j vecint.capacity j 512 i vecint.size i 500第一種辦法使用 clear 清空元素,但不 空間 vecint.clear j vecint.capac...
STL vector的幾種清空容器(刪除)辦法
1 為什麼需要主動釋放vector記憶體 來自 vector其中乙個特點 記憶體空間只會增長,不會減小,援引c primer 為了支援快速的隨機訪問,vector容器的元素以連續方式存放,每乙個元素都緊挨著前乙個元素儲存。設想一下,當vector新增乙個元素時,為了滿足連續存放這個特性,都需要重新分...
vector向量容器的刪除
erase 方法可以刪除vector中迭代器所指的乙個元素或一段區間中所有元素。clear 方法則一次性刪除vector中所有的元素。include includeusing namespace std int main int argc,char argv v.erase v.begin 2 刪除...