C++ STL 程序员必须会之学会删除容器中的元素 带详细注释实例版本
//本实例演示容器中各种删除操作的正确玩法
//涉及remove erase remove_if remove_copy unique等函数
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
#include <iterator>
using namespace std;int main()
{int source[]={1,4,7,8,1,2,2,3,1,6,6,6,5,7,1,8,8,7,3};int num=sizeof(source)/sizeof(int);vector<int> l1;vector<int> l2(num,0); //num个0初始化l2vector<int>::iterator it1;l1.assign(source,source+num); //利用数组完成对l1的初始化cout<<"l1:"<<endl;copy(l1.begin(),l1.end(),ostream_iterator<int>(cout,",")); //显示l1cout<<endl;it1=remove(l1.begin(),l1.end(),1); //将l1中值为1的元素删除cout<<"remove 1 from l1:"<<endl;copy(l1.begin(),l1.end(),ostream_iterator<int>(cout,",")); //显示l1cout<<endl;l1.erase(it1,l1.end()); //利用erase函数将删除的值为1的元素所占空间删除cout<<"erase from l1:"<<endl;copy(l1.begin(),l1.end(),ostream_iterator<int>(cout,",")); //显示l1cout<<endl;it1=remove_if(l1.begin(),l1.end(),bind2nd(greater<int>(),6)); //将l1中大于6的元素删除l1.erase(it1,l1.end()); //删除大于6的元素所占的空间cout<<"remove and erase >6 from l1:"<<endl;copy(l1.begin(),l1.end(),ostream_iterator<int>(cout,",")); //显示l1cout<<endl;//remove_copy的使用,一边复制,一边移除it1=remove_copy(l1.begin(),l1.end(),l2.begin(),6); //将l1移除元素6后复制到l2cout<<"remove_copy 6 from l1 to l2 and partial shows l2:"<<endl;copy(l2.begin(),it1,ostream_iterator<int>(cout,",")); //显示l2,注意it1作为l2的结尾使用cout<<endl;l2.erase(it1,l2.end());it1=unique(l2.begin(),l2.end()); //删除l2中的相同元素l2.erase(--it1,l2.end()); //擦除l2中相同元素所占的空间cout<<"unique and erase from l2:"<<endl;copy(l2.begin(),l2.end(),ostream_iterator<int>(cout,",")); //显示l2cout<<endl;return 0;
}
C++ STL 程序员必须会之学会删除容器中的元素 带详细注释实例版本相关推荐
- C++ STL slice()函数的正确打开方式 带详细注释实例讲解
//本程序实例主要介绍了slice的正确玩法 #include <iostream> #include <valarray> #include <cmath> us ...
- 身为程序员还看不懂UML类图? 一文带你零基础学会看UML类图!
身为程序员还看不懂UML类图? 一文带你零基础学会看UML类图! 一,UML类图示例图 二,UML类图图例 三,分步解析说明 3.1 类图: 3.2 接口: 3.3 实现继承 3.4 实现接口: 3. ...
- 好程序员web前端学习路线分享css3中的渐进增强和降级
好程序员web前端学习路线分享css3中的渐进增强和降级,渐进增强和降级这两个概念是在 CSS3 出现之后火起来的.由于低级浏览器不支持 CSS3,但是 CSS3 特效太优秀不忍放弃,所以在高级浏览器 ...
- STL 容器中的元素必须满足的条件
STL中的容器.迭代器.算法都是模板,因此可以操作任何型别.不论是STL预先定义好的或用户自行定义的都可以.然而,由于某些加诸于元素身上的操作行为,某些需求条件也就相应出现了.STL容器元素必须满足以 ...
- 小程序开发之删除数组中某个元素
因为小程序里面不是用remove这个方法,所以特别提一下. 改用splice这个方法来删除数组中的元素. 因为是要删除数组里面特定元素,所以我们先用findeIndex这个方法查询到指定元素所在集合中 ...
- 【黑马程序员】20天学会Java-基础阶段笔记
视频地址: https://www.bilibili.com/video/BV1Cv411372m 此笔记是 P1 - P85 1. 开始 1.1 注释(理解) 注释是对代码的解释和说明文字,可以提高 ...
- 漫画 | 程序员,你得学会“见人说人话,见鬼说鬼话”
周五下午, 周例会照常举行. 张大胖很沮丧,这天正好周末, 决定去龙穴寺请教大师. 张大胖突然发现,自己的周围出现了各种各样的人 大师敲了一下木鱼,时空变换, 张大胖发现自己来到了一个公司的房间,旁边 ...
- Bug面前程序员的30种反应,戳中你了没
开发应用程序是一项压力很大的工作,人无完人,工作中遇到bug是很正常的事,有些程序员会生气,沮丧,郁闷,甚至泄气,也有一些程序员则会比较淡定.如何进行修复bug的过程,是值得我们好好推敲的. 我想分享 ...
- 程序员界大杯具:蜗居中的小贝是搞C++ 的 !
据网友提供的<蜗居>第24集3:30秒截图,有理由相信小贝是搞 C++ 的. 桌子上那本书放大看是<大规模Cpp程序设计>,为无数想为 cpp献身的人士叹惜呀.搞了一辈子C++ ...
最新文章
- linux sort 排序命令简介
- web.py 0.3 新手指南 - 安装
- Re-installation failed due to different application signatures.
- C# wpf中DataGrid 支持汇总行
- 40029错误{“errcode“:40029,“errmsg“:“invalid code, rid: 623bbdcd-3c97f4af-5a2c06d6“}
- AMI corpus download
- JAVA--位移运算符详细分析【转载】
- 相机标定(2)opencv2实现
- 【Java】indexOf 方法区分大小写
- JS通过ajax动态读取xml文件内容
- 如何更新计算机的flash player,如何在win7电脑中Adobe Flash Player自动更新?
- OpenID实现多系统整合的用户同步解决方案
- Unity iOS使用ASTC格式纹理实践
- 怎么在线收听郭德纲于谦相声全集MP3
- matlab中marker太密,markersize_想问下MATLAB里 ‘Markersize’ 设置的值是‘Marker_
- 干货 | 奇秀直播连麦技术探索
- java.lang maven_maven 项目出现 java.lang.ClassNotFoundException
- APPLE G5 机箱改造“黑苹果”全攻略
- quick-cocos2d-x 飞机大战(打飞机)小demo教程------敌人类
- CTPN文本检测与tensorflow实现
热门文章
- python在线怎么发音-Python如何实现文本转语音
- 网卡重启影响nfs吗_nfs常见问题解决办法
- 信息孤岛影响_企业专访:以“信息化”冲破信息孤岛
- LeetCode 73. 矩阵置零(两个标记变量)
- 用c++实现简单单链表,双链表,二叉树类
- DirectShow Filter 开发典型例子分析 ——字幕叠加 (FilterTitleOverlay)1
- oracle 表复制 long,【学习笔记】Oracle数据库使用copy实现long类型转移表空间案例 ORA-00997...
- 汇编指令对应的机器码_汇编语言输出“welcome to you!”
- linux文件系统的总体架构,Linux NFS的整体架构与核心代码解析
- 连接池配置oracle aix,一次AIX系统swap使用过高的故障解决过程