青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

elva

C++:在迭代中刪除map的成員

C++:在迭代中刪除map的成員

首先要清楚一點(diǎn),迭代器相當(dāng)于是容器上的指針,容器可以自己管理內(nèi) 存,因此迭代器可能失效。
如果你在不知情的情況下使用了失效的迭代器,后果是不可預(yù)料的。可能程序立即崩掉,也可能什么事都沒(méi)有發(fā)生。崩掉了算你 幸運(yùn),因?yàn)槟阒辽僦莱隽藛?wèn)題,不然有你受的。

回到正題,我想說(shuō)什么呢?
比如:
程序代碼 程序代碼

map<string,int> theMap;
// add something to theMap...

for(auto iter1 = theMap.begin(); iter1 != theMap.end(); ++iter1)
{
    if(iter1->second == xxx)
   {
        theMap.erase(iter1);  //#1 erase the element ??!!
   }
}


看樣子貌似非常正常的一 段代碼。在一個(gè)map中尋找值為xxx的項(xiàng)并刪除。
但是實(shí)際上這個(gè)代碼是完全錯(cuò)誤的,會(huì)導(dǎo)致無(wú)法預(yù)料的結(jié)果。

問(wèn)題就在#1處。一 旦你erase了一個(gè)iterator指向的內(nèi)容,這個(gè)iterator就無(wú)效了。
這時(shí)候你再對(duì)這個(gè)iterator做任何操作其結(jié)果都是未定義 的。

那么該怎么辦呢?
還好,對(duì)于map這種以指針構(gòu)建起來(lái)的容器來(lái)說(shuō),可以保證一個(gè)元素刪除了,不影響指向其它元素的迭代器。
因 此就可以這樣做(《C++Standard Library》上建議的正確做法):
程序代碼 程序代碼

for(auto iter1 = theMap.begin(); iter1 != theMap.end(); )
{
    if(iter1->second == xxx)
   {
        theMap.erase(iter1++);  //#1
   }else
   {
        ++iter1;
   }
}

這 個(gè)遍歷把迭代器的自增從for頭部中取出,丟到循環(huán)體中去。#1處,iter1++這個(gè)運(yùn)算先自增,但是卻返回了自增前的迭代器的一個(gè)臨時(shí)拷貝。然后這個(gè) 臨時(shí)迭代器指向的內(nèi)容被刪除了,但是iter1本身已經(jīng)自增到下一個(gè)位置了,不受影響。

posted on 2010-07-20 10:47 葉子 閱讀(3698) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C\C++

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品主播| 国产精品无码永久免费888| 99re66热这里只有精品4| 国产精品久久久久久久久久妞妞| 久久久久久久综合狠狠综合| 亚洲国产精品一区二区三区| 亚洲激情视频网站| 国产日韩欧美中文在线播放| 男女激情久久| 久久久99精品免费观看不卡| 午夜激情久久久| 亚洲一级黄色| 亚洲麻豆国产自偷在线| 最新成人av网站| 亚洲精品国产拍免费91在线| 亚洲精品日韩欧美| 亚洲精品一区二区三区樱花| 亚洲国产综合在线看不卡| 亚洲电影免费观看高清完整版在线观看| 亚洲午夜日本在线观看| 国内精品国语自产拍在线观看| 国产欧美精品一区| 国产日产精品一区二区三区四区的观看方式 | 亚洲一区免费观看| 日韩视频一区二区三区在线播放免费观看 | 亚洲男人av电影| 亚洲在线不卡| 性欧美1819sex性高清| 久久久久国产精品午夜一区| 欧美一区网站| 另类亚洲自拍| 欧美国产一区二区三区激情无套| 久久综合色88| 久久夜色撩人精品| 国产精品视频九色porn| 欧美午夜精彩| 亚洲国产小视频| 欧美一级一区| 亚洲成人自拍视频| 中日韩高清电影网| 久久久久免费| 国产精品免费区二区三区观看| 好吊色欧美一区二区三区四区| 亚洲久久在线| 久久亚洲免费| 亚洲欧美日韩中文在线制服| 午夜精品久久久久久久99热浪潮| 久久综合色天天久久综合图片| 欧美日韩午夜视频在线观看| 国产视频欧美| 久久在线免费视频| 中文在线一区| 久久综合九色综合网站| 亚洲精品乱码| 欧美高清自拍一区| 在线欧美影院| 久久久精品午夜少妇| 欧美日韩精品二区| 亚洲国产一区视频| 麻豆成人综合网| 欧美在线综合| 国产亚洲精品久| 久久精品视频va| 久久福利精品| 国产在线拍偷自揄拍精品| 欧美中文字幕视频在线观看| 欧美在线视频不卡| 在线观看一区欧美| 亚洲福利国产精品| 欧美激情精品久久久久| 亚洲激情不卡| 一本色道久久综合狠狠躁篇怎么玩 | 欧美一级在线播放| 国产综合亚洲精品一区二| 可以看av的网站久久看| 久久精品国亚洲| 99re66热这里只有精品3直播| 亚洲精品无人区| 欧美色图首页| 亚洲国产二区| 国产亚洲欧美一区在线观看| 欧美插天视频在线播放| 欧美日本亚洲视频| 欧美电影免费观看高清| 欧美图区在线视频| 国产精品v欧美精品v日本精品动漫 | 欧美日本乱大交xxxxx| 亚洲一区www| 免费中文字幕日韩欧美| 欧美成人视屏| 国产欧美日韩伦理| 亚洲老司机av| 亚洲日韩中文字幕在线播放| 亚洲综合视频网| 亚洲一本大道在线| 久久久五月天| 免费在线播放第一区高清av| 国产精品久久久久久久久搜平片 | 免费试看一区| 蜜臀av在线播放一区二区三区| 欧美三区在线| 亚洲欧美日韩国产| 香蕉久久夜色精品国产使用方法| 欧美日韩国产综合网| 亚洲激情国产精品| 亚洲精品乱码久久久久久蜜桃麻豆| 久久精品72免费观看| 久久精品女人| 亚洲电影免费在线观看| 久久综合色8888| 日韩视频专区| 欧美一区二区三区播放老司机| 国产精品拍天天在线| 亚洲综合99| 亚洲另类春色国产| 欧美一区二区成人6969| 国产精品一页| 欧美va天堂在线| 99国产精品99久久久久久粉嫩 | 国产欧美丝祙| 欧美精品在线视频| 亚洲综合成人在线| 麻豆久久婷婷| 亚洲在线成人| 亚洲国产乱码最新视频| 欧美视频国产精品| 久久综合网色—综合色88| 一区二区三区不卡视频在线观看| 先锋影音国产精品| 亚洲国产综合在线| 国产美女精品在线| 欧美激情麻豆| 久久久久久久成人| 欧美在线啊v一区| 欧美在线日韩| 欧美一级欧美一级在线播放| 99re热这里只有精品视频| 裸体一区二区| 久久久国产成人精品| 一本色道久久综合亚洲精品不卡| 国产夜色精品一区二区av| 国产麻豆午夜三级精品| 国产精品综合| 尤物视频一区二区| 亚洲级视频在线观看免费1级| 黄色av一区| 一区二区三区在线观看国产| 精品999成人| 亚洲国产欧美一区二区三区同亚洲| 欧美另类高清视频在线| 欧美日韩免费一区| 国产精品xxxxx| 国产精品青草久久久久福利99| 欧美理论片在线观看| 欧美黄色一区二区| 国产精品黄色在线观看| 夜夜精品视频| 亚洲天堂成人| 模特精品裸拍一区| 久久国产精品99精品国产| 久久午夜电影网| 欧美视频福利| 亚洲国产精品va在线看黑人动漫 | 欧美丝袜一区二区| 国产色产综合色产在线视频| 国内成+人亚洲| 亚洲欧洲在线播放| 一区二区三区**美女毛片| 欧美一级在线视频| 欧美大尺度在线| 亚洲欧美制服另类日韩| 蜜乳av另类精品一区二区| 国产精品yjizz| 日韩网站免费观看| 欧美国产日产韩国视频| 亚洲欧美在线视频观看| 欧美日韩xxxxx| 99pao成人国产永久免费视频| 老色鬼久久亚洲一区二区| 中文亚洲字幕| 国产精品久久久久影院亚瑟| 亚洲精品国精品久久99热| 久久精品一区四区| 夜色激情一区二区| 亚洲免费在线观看视频| 中文国产亚洲喷潮| 欧美日韩国产三区| 亚洲精品日韩一| 亚洲国产一区二区三区在线播| 美女999久久久精品视频| 久久成人一区二区| 一色屋精品视频在线观看网站| 久久久一二三| 毛片基地黄久久久久久天堂| 亚洲高清不卡一区| 欧美高清在线视频| 久久精品1区| 欧美另类极品videosbest最新版本| 亚洲高清不卡| 亚洲精品免费电影|