vector的幾種清空容器(刪除)辦法

2021-10-19 13:38:37 字數 609 閱讀 6100

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 刪除...