迭代器刪除之後的處理

2021-07-07 08:42:36 字數 405 閱讀 7375

#include#includeusing namespace std;

/*測試迭代器刪除當前位置的變動之後是否有效

*結果無效,得重新設定,在這裡我設定了乙個區域性變數tmp用於暫時儲存下乙個位置

*/void test()

list::iterator it=l1.begin(),itend=l1.end();

it=l1.begin();

for(int i=0;i::iterator tmp=it;

tmp++;

if((*it)%10==0)

}cout<<"after erase "

for(int i=0;icout<}int main()

迭代器的刪除問題

it m ballactionsmgr.begin for it m ballactionsmgr.end it 這樣刪除是正確的 it m ballactionsmgr.begin for it m ballactionsmgr.end it 這樣刪除有問題,刪除迭代器以後,迭代器又加了1,所以刪...

反向迭代器的刪除

正向迭代器可以正常使用erase操作,進行刪除操作。但是反向迭代器如果直接使用erase傳遞乙個反向迭代器的引數會報錯,但是他們是繼承的關係,所以可以使用base 進行轉換已達到刪除的目的。即使用 it base 作為erase的引數。multimapmm mm.insert make pair 3...

STL刪除迭代器

1.關聯容器刪除乙個迭代器對其他迭代器不會造成影響,返回的是void型。2.序列容器刪除乙個迭代器後會造成後面的所有迭代器都往前移動乙個位置,因此先前儲存的迭代器都會失效,返回的是被刪除後新複製到被刪除位置的元素的迭代器。c 中利用迭代器刪除元素會發生什麼?1 對於關聯容器 如map,set,mul...