//本实例演示容器中各种删除操作的正确玩法
//涉及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 程序员必须会之学会删除容器中的元素 带详细注释实例版本相关推荐

  1. C++ STL slice()函数的正确打开方式 带详细注释实例讲解

    //本程序实例主要介绍了slice的正确玩法 #include <iostream> #include <valarray> #include <cmath> us ...

  2. 身为程序员还看不懂UML类图? 一文带你零基础学会看UML类图!

    身为程序员还看不懂UML类图? 一文带你零基础学会看UML类图! 一,UML类图示例图 二,UML类图图例 三,分步解析说明 3.1 类图: 3.2 接口: 3.3 实现继承 3.4 实现接口: 3. ...

  3. 好程序员web前端学习路线分享css3中的渐进增强和降级

    好程序员web前端学习路线分享css3中的渐进增强和降级,渐进增强和降级这两个概念是在 CSS3 出现之后火起来的.由于低级浏览器不支持 CSS3,但是 CSS3 特效太优秀不忍放弃,所以在高级浏览器 ...

  4. STL 容器中的元素必须满足的条件

    STL中的容器.迭代器.算法都是模板,因此可以操作任何型别.不论是STL预先定义好的或用户自行定义的都可以.然而,由于某些加诸于元素身上的操作行为,某些需求条件也就相应出现了.STL容器元素必须满足以 ...

  5. 小程序开发之删除数组中某个元素

    因为小程序里面不是用remove这个方法,所以特别提一下. 改用splice这个方法来删除数组中的元素. 因为是要删除数组里面特定元素,所以我们先用findeIndex这个方法查询到指定元素所在集合中 ...

  6. 【黑马程序员】20天学会Java-基础阶段笔记

    视频地址: https://www.bilibili.com/video/BV1Cv411372m 此笔记是 P1 - P85 1. 开始 1.1 注释(理解) 注释是对代码的解释和说明文字,可以提高 ...

  7. 漫画 | 程序员,你得学会“见人说人话,见鬼说鬼话”

    周五下午, 周例会照常举行. 张大胖很沮丧,这天正好周末, 决定去龙穴寺请教大师. 张大胖突然发现,自己的周围出现了各种各样的人 大师敲了一下木鱼,时空变换, 张大胖发现自己来到了一个公司的房间,旁边 ...

  8. Bug面前程序员的30种反应,戳中你了没

    开发应用程序是一项压力很大的工作,人无完人,工作中遇到bug是很正常的事,有些程序员会生气,沮丧,郁闷,甚至泄气,也有一些程序员则会比较淡定.如何进行修复bug的过程,是值得我们好好推敲的. 我想分享 ...

  9. 程序员界大杯具:蜗居中的小贝是搞C++ 的 !

    据网友提供的<蜗居>第24集3:30秒截图,有理由相信小贝是搞 C++ 的. 桌子上那本书放大看是<大规模Cpp程序设计>,为无数想为 cpp献身的人士叹惜呀.搞了一辈子C++ ...

最新文章

  1. linux sort 排序命令简介
  2. web.py 0.3 新手指南 - 安装
  3. Re-installation failed due to different application signatures.
  4. C# wpf中DataGrid 支持汇总行
  5. 40029错误{“errcode“:40029,“errmsg“:“invalid code, rid: 623bbdcd-3c97f4af-5a2c06d6“}
  6. AMI corpus download
  7. JAVA--位移运算符详细分析【转载】
  8. 相机标定(2)opencv2实现
  9. 【Java】indexOf 方法区分大小写
  10. JS通过ajax动态读取xml文件内容
  11. 如何更新计算机的flash player,如何在win7电脑中Adobe Flash Player自动更新?
  12. OpenID实现多系统整合的用户同步解决方案
  13. Unity iOS使用ASTC格式纹理实践
  14. 怎么在线收听郭德纲于谦相声全集MP3
  15. matlab中marker太密,markersize_想问下MATLAB里 ‘Markersize’ 设置的值是‘Marker_
  16. 干货 | 奇秀直播连麦技术探索
  17. java.lang maven_maven 项目出现 java.lang.ClassNotFoundException
  18. APPLE G5 机箱改造“黑苹果”全攻略
  19. quick-cocos2d-x 飞机大战(打飞机)小demo教程------敌人类
  20. CTPN文本检测与tensorflow实现

热门文章

  1. python在线怎么发音-Python如何实现文本转语音
  2. 网卡重启影响nfs吗_nfs常见问题解决办法
  3. 信息孤岛影响_企业专访:以“信息化”冲破信息孤岛
  4. LeetCode 73. 矩阵置零(两个标记变量)
  5. 用c++实现简单单链表,双链表,二叉树类
  6. DirectShow Filter 开发典型例子分析 ——字幕叠加 (FilterTitleOverlay)1
  7. oracle 表复制 long,【学习笔记】Oracle数据库使用copy实现long类型转移表空间案例 ORA-00997...
  8. 汇编指令对应的机器码_汇编语言输出“welcome to you!”
  9. linux文件系统的总体架构,Linux NFS的整体架构与核心代码解析
  10. 连接池配置oracle aix,一次AIX系统swap使用过高的故障解决过程