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

首頁 > 編程 > C++ > 正文

C++中vector和map的刪除方法(推薦)

2020-05-23 13:56:50
字體:
來源:轉載
供稿:網友

1.連續(xù)內存序列容器(vector,string,deque)

序列容器的erase方法返回值是指向緊接在被刪除元素之后的元素的有效迭代器,可以根據(jù)這個返回值來安全刪除元素。

vector<int> c;for(vector<int>::iterator it = c.begin(); it != c.end();){ if(need_delete())      it = c.erase(it);   else       ++it; }

2.關聯(lián)容器(set,multiset,map,multimap)

關聯(lián)容器的erase方法沒有返回值,被刪除的迭代器失效,所以刪除前必須確保能得到下一個迭代器,可以用“后置遞增迭代器”技術。

map<int,int> m;for(map<int,int>::iterator it = m.begin(); it != m.end();){  if(need_delete())        m.erase(it++);   else        ++it;}

m.erase得到it的一個副本,在erase真正開始之前it已經遞增了。

所以erase得到了當前的迭代器,在erase內部工作開始之前it已經++了,正好滿足我們的需要。

以上就是小編為大家?guī)淼腃++中vector和map的刪除方法(推薦)全部內容了,希望大家多多支持VEVB武林網~


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 达尔| 建德市| 通州区| 将乐县| 自治县| 琼海市| 云南省| 茌平县| 莫力| 西安市| 黑山县| 五寨县| 松阳县| 鞍山市| 方山县| 南靖县| 革吉县| 金阳县| 绥芬河市| 砀山县| 甘孜| 长沙市| 西充县| 尚义县| 武平县| 海宁市| 武穴市| 广南县| 永年县| 霍山县| 阿荣旗| 阿勒泰市| 保定市| 洛浦县| 重庆市| 三江| 嘉荫县| 安徽省| 长海县| 彭泽县| 伊川县|