map的insert返回值

關於map容器的insert成員的返回值說明:
(1)map對象中一個給定鍵只對應一個元素。如果試圖插入的元素所對應的鍵已在容器中,則insert將不做任何操作;
(2)含有一個或一對迭代器形參的insert函數版本如:m.insert(beg,end),並不說明明是否有或有多少個元素插入到容器中。
(3)但是,帶有一個鍵-值pair形參的insert版本將返回一個值:包含一個迭代器和一個bool值得pair對象,其中迭代器指向map中具有相應鍵的元素,而bool值則表示是否插入了該元素。如果該鍵不在容器中,則插入新元素,且bool值爲ture;如果該鍵已在容器中,則其關聯的值保持不變,返回bool值爲false。在這兩種情況下,迭代器都將指向具有給定鍵的元素。

所以在看見pair<map<string,vector<string> >::iterator,bool> ret =    children.insert(make_pair(surname,chd));這麼長的一句話時,不要害怕,細細分析。

 

pair裏面的兩個元素的類型分別是:map<string,vector<string> >::iterator,和bool。這個pair類型變量ret是insert操作的返回值。前面這個迭代器類型的元素是指向map中具有相應鍵的元素。
--------------------- 
作者:陳德勝 
來源:CSDN 
原文:https://blog.csdn.net/chendesheng1988/article/details/14108937 
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章