欢迎来到代码驿站!

C代码

当前位置:首页 > 软件编程 > C代码

vector list map 遍历删除制定元素 防止迭代器失效的实例

时间:2021-05-03 09:59:19|栏目:C代码|点击:

方法如下所示:

// k_control.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "stdio.h"
#include <vector>
#include <map>
#include <string>
#include <list>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
printf("run main");
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>::iterator iter = 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>::iterator iter_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>::iterator iter_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("run over");
return 0;
}

上一篇:C++中new的越界访问问题

栏    目:C代码

下一篇:C++中delete和delete[]的区别

本文标题:vector list map 遍历删除制定元素 防止迭代器失效的实例

本文地址:http://www.codeinn.net/misctech/113527.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有