博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
STL - 移除(remove)和释放(erase)集合元素
阅读量:7105 次
发布时间:2019-06-28

本文共 1671 字,大约阅读时间需要 5 分钟。

remove(移除):

这个操作并不是真正地删除元素,它会移除指定的元素,然后后面的元素依次前移,最后用别的元素来补充。

erase(释放):

这个操作会指定释放区间的头和尾迭代器(iterator)。

 

如果要一次性删除指定元素:

coll.erase(remove(coll.begin(), coll.end(), [removed element]), coll.end()); 

 

代码如下:

 

list
coll1; for (int i = 1; i <= 6; ++i) { coll1.push_front(i); coll1.push_back(i); } cout << "** collection 1: **" << endl; ContainerUtil
>::printElements(coll1); // remove all elements with value 3 list
::iterator end = remove(coll1.begin(), coll1.end(), 3); cout << "** collection 1(after remove elements 3): **" << endl; ContainerUtil
>::printElements(coll1); // print number of removed elements cout << "number of removed elements : " << distance(end, coll1.end()) << endl; // release 'removed' elements coll1.erase(end, coll1.end()); cout << "** collection 1(after releasing removed elements): **" << endl; ContainerUtil
>::printElements(coll1); // remove & release elements with value 4 all at once coll1.erase(remove(coll1.begin(), coll1.end(), 4), coll1.end()); cout << "** collection 1(after remove & release elements 4): **" << endl; ContainerUtil
>::printElements(coll1);

 

运行结果:

** collection 1: **

  6  5  4  3  2  1  1  2  3  4  5  6
** collection 1(after remove elements 3): **
  6  5  4  2  1  1  2  4  5  6  5  6
number of removed elements : 2
** collection 1(after releasing removed elements): **
  6  5  4  2  1  1  2  4  5  6
** collection 1(after remove & release elements 4): **
  6  5  2  1  1  2  5  6

 

转载地址:http://avjhl.baihongyu.com/

你可能感兴趣的文章
现代软件工程 作业 1 个人项目
查看>>
我的友情链接
查看>>
jdk1.7升级为1.8
查看>>
Hyper-V虚拟网络总结
查看>>
博客作业:raid各级别特性
查看>>
mysql数据文件迁移(转)(亲测可用)
查看>>
三层交换
查看>>
find删除用户家目录下的文件需注意
查看>>
[ Exchange 2016] Mail Box 無法接收外部郵件
查看>>
LAMP平台搭建脚本
查看>>
C#的扩展方法解说
查看>>
量化指标程序库 ta-lib 安装方法
查看>>
Node.js 模块和包(Modules)
查看>>
windows服务器IIS+PHP+Mysql
查看>>
路由策略相关技术
查看>>
干货分享!深度学习几何画板绘图技巧!
查看>>
[BZOJ1563][NOI2009]诗人小G[决策单调性优化]
查看>>
团队冲刺第四天
查看>>
简短描述操作系统的进化史
查看>>
SSH服务拒绝了密码
查看>>