關於迴圈遍歷map容器,erase元素的問題

2021-08-19 16:54:43 字數 840 閱讀 8350

發現跳過了c,這是為什麼?

原因:我們假設迭代器有6個位置0,1,2,3,4,5,對應a,b,c,d,e,f, 當刪除b後 ,內容變成了0,1,2,3,4 對應a,c,d,e,f, 迭代器位置為2 ,2的位置對應了d,跳過了c

正確用法:

int main ()

else

}std::cout << "----------------------" << endl;

for (std::map::iterator it=mymap.begin(); it!=mymap.end(); ++it)

return 0;

}

結果:

誒,萬事都不能偷懶啊, 一偷懶就給自己挖坑

關於map迴圈

map 方法建立乙個新陣列,其結果是該陣列中的每個元素都呼叫乙個提供的函式後返回的結果,不能改變原始陣列。該函式接受的三個引數為 當前元素 當前索引 當前被呼叫的陣列 var numbers 1 4,9 var roots numbers.map math.sqrt roots的值為 1,2,3 n...

Map迴圈遍歷的方法

map迴圈遍歷的方法 map迴圈遍歷的方法 map迴圈遍歷的方法 下面是 部分 mapmap new hashmap map.put key1 value1 map.put key2 value2 map.put key3 value3 第一種 普遍使用,二次取值 system.out.printl...

for迴圈遍歷改用map函式

for url in urls url response.urljoin url print url urls map lambda url response.urljoin url urls print urls 在這裡要情調的是map函式執行完之後會生成乙個map物件 所以還需要轉換一下,即 u...