国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

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

2019-11-06 06:10:26
字體:
來源:轉載
供稿:網友

在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=0

erase在每次操作時,迭代器指針會整體前移1,就是每次都會“搬”全部數據,所以vector不適合做頻繁刪除的容器

第三種辦法 最簡單的使用swap,清除元素并回收內存

vector <int>().swap(vecInt); //清除容器并最小化它的容量,// vecInt.swap(vector<int>()) ; 另一種寫法j= vecInt.capacity(); //j=0 i = vecInt.size(); //i=0

vector<T>().swap(vec);//清空容器

vector<Contestant> v;string s;// 使用v和svector<Contestant>().swap(v); // 清除v而且最小化它的容量string().swap(s); // 清除s而且最小化它的容量
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 静安区| 康马县| 蒙阴县| 沐川县| 罗山县| 福州市| 南靖县| 久治县| 翁牛特旗| 江门市| 和顺县| 沧州市| 社旗县| 滕州市| 十堰市| 临沂市| 徐州市| 商城县| 汕尾市| 诸城市| 沙雅县| 伊金霍洛旗| 迁安市| 阳信县| 冕宁县| 林西县| 拉孜县| 开封市| 蒙阴县| 南部县| 大庆市| 蚌埠市| 四平市| 新乐市| 石楼县| 西乌| 马山县| 宣武区| 惠水县| 大埔区| 芜湖县|