全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

vector, list, map在遍历时删除符合条件的元素实现方法

直接看源码,内有详细解释

/*
	测试vector, list, map遍历时删除符合条件的元素
	本代码测试环境: ubuntu12 + win7_x64
*/

#include <iostream>
#include <vector>
#include <list>
#include <map>
#include <iterator>

using namespace std;

void Remove1(vector<int> &vec, int num)
{
	for (vector<int>::iterator it = vec.begin(); it != vec.end();)
	{
		if (*it == num)
			it = vec.erase(it);
		else
			it++;
	}
}

void Remove2(list<int> &lst, int num)
{
	list<int>::iterator it;
	for (it=lst.begin(); it!=lst.end();)
	{
		if (*it == num)
		{
			lst.erase(it++);
		}
		else
			it++;
	}
}

void initMap(map<int, int>& m, int arr[], int arrLen)
{
	for(int i = 0; i < arrLen; i++)
		m[i] = arr[i];
}

void Remove_map(map<int, int>& m, int num)
{
	map<int, int>::iterator it;

	for(it = m.begin(); it != m.end();)
	{
		if (it->second == num)
			m.erase(it++);
		else
			it++;
	}
}

void displayMap(map<int, int>& m)
{
	map<int, int>::iterator it = m.begin();
	while(it != m.end())
	{
		cout << "key = " << it->first << ", value = " << it->second << endl;
		it++;
	}
	cout << endl;
}

int main(void)
{
	int arr[] = {1, 3, 5, 5, 5, 13, 7, 5, 7, 9};
	int arrLen = sizeof(arr) / sizeof(arr[0]);

#if 1
	// test vector
	vector<int> vec(arr, arr+arrLen);
	Remove1(vec, 5);
	copy(vec.begin(), vec.end(), ostream_iterator<int>(cout, " "));
	cout << endl << endl;
#endif

	// test list
	list<int> lst(arr, arr+arrLen);
	Remove2(lst, 5);
	copy(lst.begin(), lst.end(), ostream_iterator<int>(cout, " "));
	cout << endl << endl;

	// test map
	map<int, int> m;
	initMap(m, arr, arrLen);
	Remove_map(m, 5);
	displayMap(m);

	return 0;
}

/*
Win7_x64运行结果:
1 3 13 7 7 9

1 3 13 7 7 9

key = 0, value = 1
key = 1, value = 3
key = 5, value = 13
key = 6, value = 7
key = 8, value = 7
key = 9, value = 9

Ubuntu12运行结果:
[zcm@cpp #54]$make
g++ -Wall -Os -DLINUX -o a a.cpp
[zcm@cpp #55]$./a
1 3 13 7 7 9 

1 3 13 7 7 9 

key = 0, value = 1
key = 1, value = 3
key = 5, value = 13
key = 6, value = 7
key = 8, value = 7
key = 9, value = 9

*/

以上就是小编为大家带来的小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧全部内容了,希望大家多多支持~


# vector  # map  # list  # 详谈js遍历集合(Array 


相关文章: php条件判断怎么写_ifelse和switchcase的使用区别【对比】  如何注册花生壳免费域名并搭建个人网站?  详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)  网站图片在线制作软件,怎么在图片上做链接?  重庆市网站制作公司,重庆招聘网站哪个好?  如何通过cPanel快速搭建网站?  免费视频制作网站,更新又快又好的免费电影网站?  网站制作网站,深圳做网站哪家比较好?  导航网站建站方案与优化指南:一站式高效搭建技巧解析  盘锦网站制作公司,盘锦大洼有多少5G网站?  沈阳制作网站公司排名,沈阳装饰协会官方网站?  c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】  如何在Windows服务器上快速搭建网站?  头像制作网站在线制作软件,dw网页背景图像怎么设置?  免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?  建站主机如何选?性能与价格怎样平衡?  台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?  香港服务器建站指南:外贸独立站搭建与跨境电商配置流程  如何通过虚拟机搭建网站?详细步骤解析  如何快速重置建站主机并恢复默认配置?  建站之星备案是否影响网站上线时间?  大型企业网站制作流程,做网站需要注册公司吗?  音乐网站服务器如何优化API响应速度?  上海网站制作开发公司,上海买房比较好的网站有哪些?  建站主机空间推荐 高性价比配置与快速部署方案解析  制作网站的模板软件,网站怎么建设?  高端云建站费用究竟需要多少预算?  如何在建站之星网店版论坛获取技术支持?  相册网站制作软件,图片上的网址怎么复制?  手机网站制作与建设方案,手机网站如何建设?  如何通过WDCP绑定主域名及创建子域名站点?  商务网站制作工程师,从哪几个方面把握电子商务网站主页和页面的特色设计?  如何选购建站域名与空间?自助平台全解析  如何在Tomcat中配置并部署网站项目?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  建站org新手必看:2024最新搭建流程与模板选择技巧  营销式网站制作方案,销售哪个网站招聘效果最好?  建站之星下载版如何获取与安装?  如何挑选高效建站主机与优质域名?  如何通过VPS建站无需域名直接访问?  宝塔建站后网页无法访问如何解决?  交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?  Avalonia如何实现跨窗口通信 Avalonia窗口间数据传递  建站之星如何开启自定义404页面避免用户流失?  如何用搬瓦工VPS快速搭建个人网站?  ,交易猫的商品怎么发布到网站上去?  如何快速搭建高效WAP手机网站?  linux top下的 minerd 木马清除方法  MySQL查询结果复制到新表的方法(更新、插入)  如何通过VPS建站实现广告与增值服务盈利? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。