在c std map上面用迭代器移除元素

2021-06-18 14:00:14 字數 648 閱讀 5593

在c++程式設計的時候,我們有時會遇到,在遍歷map的時候,刪除符合某個條件的元素,如果我們不做任何處理,直接刪除map元素的話,程式會異常終端,提示"expression: map/set iterator not incrementable"。所以如果想在遍歷map的時候刪除元素,必須做一些處理,下面給出一種方法.

原文參考:

#include "stdafx.h"

#include "iostream"

using namespace std;

#include "map"

int main()

int count = 0;

for( std::map::iterator iter = test_map.begin(); iter != test_map.end();)

else

}cout << "use count:" << count << endl;

cout << "after delete " << endl;

for( std::map::iterator iter = test_map.begin();

iter != test_map.end(); ++ iter)

return 0;

}

iterator迭代器怎麼用

迭代器 iterator 有時又稱游標,它是一種物件,能夠用來遍歷容器中的元素,每個迭代器物件代表容器中的確定的位址。我一般在遍歷集合的時候使用迭代器,呼叫iterator 方法會返回集合的迭代器,剛獲得迭代器的時候,迭代器的游標指向第乙個元素的前面,通過hasnext 可以判斷游標的後面還有沒有元...

在路由器上面按IP限速

it168技術 2811路由器來完成,本實驗分兩種方法來做,各有特點。先看下路由器的flash yourname dir directory of flash 1 rw 25438028 oct 22 2010 02 25 58 00 00 c2800nm ipbase mz.124 15.t.bi...

用函式方法實現迭代器

序列就是可迭代的,是乙個迭代器,也就是實現了ienumerable介面的。列表就是記憶體中的元素的集合。容易讀寫,通常以索引的方式訪問。用函式方法實現迭代器 private static ienumerablesequence funcgetnext,t startvalue,funcbool en...