在c++程式設計的時候,我們有時會遇到,在遍歷map的時候,刪除符合某個條件的元素,如果我們不做任何處理,直接刪除map元素的話,程式會異常終端,提示"expression: map/set iterator not incrementable"。所以如果想在遍歷map的時候刪除元素,必須做一些處理,下面給出一種方法.
#include #include using namespace std;
int main()
int count = 0;
// delete the element
for( std::map::iterator iter = test_map.begin();
iter != test_map.end(); )
else iter ++;
count ++;
}cout << "use count:" << count << endl;
cout << "after delete " << endl;
for( std::map::iterator iter = test_map.begin();
iter != test_map.end(); ++ iter)
system("pause");
return 0;
}
執行結果
1 12 2
3 34 4
use count:4
after delete
1 13 3
遍歷所需次數,也就是整個map的總元素個數,不會增加額外的次數
map刪除元素
1.刪除指定的key map iterator iter m.find 1 m.erase iter 上述例子的map是任意給定的,我們指定刪除mapm中 鍵值為1的資料 測試結果m的size減一 上完整測試 include include using namespace std int main ...
map刪除元素
map刪除指定元素 1.hashmap 類對映不保證順序 某些對映可明確保證其順序 treemap 類 2.在遍歷map過程中,不能用map.put key,newval map.remove key 來修改和刪除元素,會引發 併發修改異常,可以通過迭代器的remove 從迭代器指向的 collec...
如何在map遍歷的時候刪除符合條件的選項
工作了,使用stl的次數變得很多,我是新手,雖然努力的看過stl的原始碼,但是很多的東西都沒有看懂,慢慢來吧。昨天做專案的時候遇到了map遍歷的事情查了一下便了解的記錄下來。這個刪除有兩種方法 1,std map iterator iter for iter m friendinfomap.begi...