直接看源码,内有详细解释
/*
测试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小时内与您取得联系。