vector list map 遍历删除制定元素 防止迭代器失效的实例
方法如下所示:
//k_control.cpp:定义控制台应用程序的入口点。
//
#include"stdafx.h"
#include"stdio.h"
#include<vector>
#include<map>
#include<string>
#include<list>
usingnamespacestd;
int_tmain(intargc,_TCHAR*argv[])
{
printf("runmain");
vector<int>vect;
vect.push_back(1);
vect.push_back(2);
vect.push_back(3);
vect.push_back(4);
vect.push_back(5);
vector<int>::iteratoriter=vect.begin();
for(iter;iter!=vect.end();){
if(*iter==3){
iter=vect.erase(iter);
}else{
iter++;
}
}
map<int,string>map_local;
map_local[1]="hello_1";
map_local[2]="hello_2";
map_local[3]="hello_3";
map_local[4]="hello_4";
map_local[5]="hello_5";
map<int,string>::iteratoriter_map=map_local.begin();
for(iter_map;iter_map!=map_local.end();){
if(iter_map->first==1){
map_local.erase(iter_map++);
或者
//iter_map=map_local.erase(iter_map);
}else{
iter_map++;
}
}
list<int>list_my;
list_my.push_back(1);
list_my.push_back(2);
list_my.push_back(3);
list_my.push_back(4);
list_my.push_back(5);
list<int>::iteratoriter_list=list_my.begin();
for(iter_list;iter_list!=list_my.end();){
if(*iter_list==2){
list_my.erase(iter_list++);
或者
//iter_list=list_my.erase(iter_list);
}else
iter_list++;
}
printf("runover");
return0;
}
以上就是小编为大家带来的vectorlistmap遍历删除制定元素防止迭代器失效的实例全部内容了,希望大家多多支持毛票票~