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

colorful

zc qq:1337220912

 

stl之map erase方法的正確使用

STL的map表里有一個erase方法用來從一個map中刪除掉指令的節點
eg:
map<string,string> mapTest;
typedef map<string,string>::iterator ITER;

ITER iter=mapTest.find(key);
mapTest.erase(iter);

像上面這樣只是刪除單個節點,map的形為不會出現任務問題,
但是當在一個循環里用的時候,往往會被誤用,那是因為使用者沒有正確理解iterator的概念.
像下面這樣的一個例子就是錯誤的寫法,
eg.
for(ITER iter=mapTest.begin();iter!=mapTest.end();++iter)
{
cout<<iter->first<<":"<<iter->second<<endl;
mapTest.erase(iter);
}

這是一種錯誤的寫法,會導致程序行為不可知.究其原因是map 是關聯容器,對于關聯容器來說,如果某一個元素已經被刪除,那么其對應的迭代器就失效了,不應該再被使用;否則會導致程序無定義的行為。
可以用以下方法解決這問題:
正確的寫法
1.使用刪除之前的迭代器定位下一個元素。STL建議的使用方式
for(ITER iter=mapTest.begin();iter!=mapTest.end();)
{
cout<<iter->first<<":"<<iter->second<<endl;
mapTest.erase(iter++);
}

2. erase() 成員函數返回下一個元素的迭代器
for(ITER iter=mapTest.begin();iter!=mapTest.end();)
{
cout<<iter->first<<":"<<iter->second<<endl;
iter=mapTest.erase(iter);
}

注意:

map的earse應注意:
map這種容器的下邊訪問和Vector等容器的下標訪問有本質的區別。
對于Vector容器,用aVector[i]訪問第i個元素時,如果元素不存在,容器不會增加元素,
而對于map,用aMap[key]
訪問鍵key對應的對象時,如果該鍵對應的對象存在,則返回該對象(這和Vector一樣),但是,當鍵值為key的元素不存在時,容器會自動的增加一個 pair,鍵為key,而值則為一個容器定義時指定的類型并默認初始化(即,如果該類型為基本類型,則初始化為0,比如本例中,aMap[1]的使用會產 生一個pair,<1,NULL>,若該類型為類類型,則調用默認構造函數初始化之)

顯然,本例中,aMap[1]為NULL,后面的erase()不會執行,使得后面的
插入語句aMap.insert(1,new A())鍵值沖突

eg:如下代碼會導致錯誤

#include <iostream>
#include <map>

using namespace std;

struct A
{
A(int i)
{
x=i;
}
int x;
};

int main()
{
map<int,A*> amap;
if ( amap[1] != NULL )
amap.erase(1);
amap.insert(make_pair(1,new A(1)));
amap.insert(make_pair(2,new A(2)));
amap.insert(make_pair(3,new A(3)));
return 0;
}

posted on 2012-07-06 10:20 多彩人生 閱讀(254) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


導航

統計

常用鏈接

留言簿(3)

隨筆分類

隨筆檔案

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            一区在线影院| 亚洲午夜精品久久| 日韩网站免费观看| 欧美1区3d| 久久人人爽人人爽| 国产在线视频欧美| 欧美在线观看一二区| 日韩亚洲不卡在线| 欧美韩日一区| 亚洲精品视频中文字幕| 欧美成人影音| 玖玖综合伊人| 在线日韩中文| 欧美大胆成人| 欧美xart系列高清| 最新亚洲一区| 欧美国产日韩在线| 欧美国产日韩精品| 99视频在线精品国自产拍免费观看| 欧美国产大片| 欧美精品国产一区二区| 日韩小视频在线观看| 日韩视频亚洲视频| 国产精品专区h在线观看| 久久国产天堂福利天堂| 久久久久久久久久久久久久一区| 久久久久在线观看| 亚洲区国产区| 一区二区久久久久| 国产欧美在线| 免费日韩av| 欧美日韩一区二区三| 欧美在线3区| 久久婷婷国产麻豆91天堂| 亚洲免费电影在线| 亚洲一区网站| 亚洲国产欧美国产综合一区| 亚洲精品乱码久久久久久黑人| 女同性一区二区三区人了人一| 日韩视频中文| 性视频1819p久久| 亚洲精品国产精品国自产观看| 亚洲美女福利视频网站| 国产精品一区二区在线观看不卡| 免费成人高清| 欧美午夜激情在线| 久久久之久亚州精品露出| 欧美1级日本1级| 久久国产精品黑丝| 欧美高清视频www夜色资源网| 亚洲在线免费观看| 久久深夜福利免费观看| 日韩视频免费观看高清完整版| 亚洲欧美精品在线观看| 最新国产成人av网站网址麻豆| 99精品久久久| 亚洲福利视频网| 亚洲欧美日韩国产另类专区| 亚洲区一区二| 久久精品国产视频| 午夜精品国产更新| 欧美精品在线观看播放| 久久综合给合久久狠狠狠97色69| 欧美三区美女| 欧美国产日韩免费| 国外成人免费视频| 亚洲免费小视频| 一本色道久久综合| 久久综合伊人77777| 久久成人精品电影| 欧美色播在线播放| 亚洲欧洲一区二区三区| 在线观看亚洲精品| 久久超碰97中文字幕| 一区二区欧美日韩视频| 欧美日韩免费观看一区三区| 美女日韩在线中文字幕| 国产精品国产自产拍高清av| 欧美高清视频| 国内成人精品2018免费看 | 亚洲永久免费av| 欧美成年人网站| 乱人伦精品视频在线观看| 国产视频精品xxxx| 亚洲影音一区| 午夜免费久久久久| 国产精品成人一区二区三区吃奶| 亚洲精品国产精品乱码不99| 亚洲国产你懂的| 麻豆成人av| 欧美激情精品久久久久久黑人| 精品动漫一区二区| 久久久夜精品| 欧美激情va永久在线播放| 亚洲成色www久久网站| 久久综合伊人| 亚洲精品激情| 夜夜躁日日躁狠狠久久88av| 欧美精品亚洲一区二区在线播放| 91久久精品视频| a4yy欧美一区二区三区| 欧美日韩一区二区三区免费看| 亚洲美女福利视频网站| 亚洲已满18点击进入久久| 国产精品成人一区| 午夜精品久久99蜜桃的功能介绍| 欧美一区二区三区的| 国产亚洲福利| 久久夜色精品| 亚洲精品国产日韩| 亚洲免费伊人电影在线观看av| 国产精品久久二区| 香蕉尹人综合在线观看| 欧美不卡一区| 宅男噜噜噜66一区二区 | 亚洲永久在线| 国产乱码精品一区二区三区五月婷| 亚洲午夜成aⅴ人片| 久久综合精品国产一区二区三区| 亚洲国产高清一区二区三区| 欧美区视频在线观看| 亚洲午夜电影在线观看| 免播放器亚洲一区| 一区二区三区日韩在线观看| 国产精品久久久久久久久搜平片| 欧美综合激情网| 亚洲国产中文字幕在线观看| 亚洲男人第一网站| 韩日精品视频一区| 欧美日韩成人在线| 午夜精品久久久久久久久| 麻豆精品视频在线| 国产精品99久久久久久人| 狠狠色丁香久久婷婷综合丁香| 免费日韩一区二区| 亚洲一区二区三区三| 欧美aⅴ一区二区三区视频| 亚洲男人的天堂在线观看| 亚洲狠狠丁香婷婷综合久久久| 国产精品日韩久久久久| 免费观看久久久4p| 亚洲欧美日韩直播| 最新国产拍偷乱拍精品| 久久久另类综合| 午夜激情综合网| 日韩午夜三级在线| 一区免费观看| 国产精品中文字幕欧美| 欧美日韩国产影院| 免费高清在线一区| 欧美在线观看视频一区二区| 一区二区三区产品免费精品久久75 | 欧美精品一区二区三区很污很色的 | 欧美在线三级| 亚洲私人影吧| 日韩亚洲一区二区| 精品动漫3d一区二区三区免费版| 国产精品久久久久久久久久妞妞| 牛夜精品久久久久久久99黑人 | 黑丝一区二区| 国产精品一区二区久激情瑜伽| 欧美第一黄色网| 久久婷婷蜜乳一本欲蜜臀| 欧美一区二区精美| 亚洲综合视频在线| 一区二区三区四区五区在线| 91久久久亚洲精品| 欧美成人日韩| 亚洲大胆av| 亚洲福利一区| 亚洲国产欧美一区二区三区久久| 免费成人激情视频| 模特精品裸拍一区| 免费欧美在线视频| 免费在线日韩av| 亚洲成色999久久网站| 亚洲黄色成人网| 亚洲精品一级| 99re这里只有精品6| 亚洲人成在线观看| 亚洲精品在线视频观看| 日韩香蕉视频| 中文av一区特黄| 亚洲午夜在线视频| 欧美一级网站| 久久久精品性| 欧美成人国产一区二区| 欧美成人在线免费观看| 欧美精品一级| 欧美午夜精品一区| 国产一区二区视频在线观看| 狠狠色狠狠色综合日日tαg| 一区二区三区在线免费观看| 18成人免费观看视频| 亚洲欧洲日本mm| 国产精品99久久久久久白浆小说 | 一区二区三区久久| 亚洲自拍另类| 麻豆精品精品国产自在97香蕉| 欧美屁股在线|