国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 盐边县| 广宗县| 毕节市| 安化县| 饶平县| 鄂托克前旗| 兴国县| 同仁县| 大新县| 筠连县| 乌恰县| 麟游县| 务川| 波密县| 金华市| 苏尼特左旗| 大安市| 尖扎县| 大同市| 望谟县| 昌乐县| 安顺市| 长海县| 韶山市| 保定市| 花莲市| 临沭县| 鹤峰县| 禹城市| 霸州市| 富阳市| 沅江市| 曲水县| 崇州市| 莱阳市| 肃北| 中卫市| 株洲县| 古交市| 克东县| 抚松县|