STL - 移除(remove)和释放(erase)集合元素
集合 元素 释放 STL 移除 remove
2023-09-11 14:16:56 时间
remove(移除):
这个操作并不是真正地删除元素,它会移除指定的元素,然后后面的元素依次前移,最后用别的元素来补充。
erase(释放):
这个操作会指定释放区间的头和尾迭代器(iterator)。
如果要一次性删除指定元素:
coll.erase(remove(coll.begin(), coll.end(), [removed element]), coll.end());
代码如下:
list<int> coll1; for (int i = 1; i <= 6; ++i) { coll1.push_front(i); coll1.push_back(i); } cout << "** collection 1: **" << endl; ContainerUtil<list<int>>::printElements(coll1); // remove all elements with value 3 list<int>::iterator end = remove(coll1.begin(), coll1.end(), 3); cout << "** collection 1(after remove elements 3): **" << endl; ContainerUtil<list<int>>::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<list<int>>::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<list<int>>::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
相关文章
- JavaScript日期集合(今日,昨日,本周一,周末 ,月初,月末)
- 第二百九十八节,python操作redis缓存-Set集合类型,可以理解为不能有重复元素的列表
- java 容器 集合 用法
- 集合 排序 判断元素相等 [MD]
- Scala: Range & 实现集合中相邻元素间的差值
- scala集合同时支持不可变集合和可变集合
- Scala集合:List增加元素及集合拼接操作
- Java集合和数组的区别
- 内部元素一一对应的集合的算法优化,从list到hashmap
- Map集合之HashMap(二)
- python中set()函数==》创建一个无序不重复的元素集(创将一个集合)
- 【Groovy】集合遍历 ( 使用集合的 findAll 方法查找集合中符合匹配条件的所有元素 | 代码示例 )
- 【Groovy】集合遍历 ( 使用集合的 reverseEach 方法进行遍历 | 倒序集合迭代器 ReverseListIterator 类简介 | 代码示例 )
- C# DIctionary:集合已修改,可能无法执行枚举操作
- 006-多线程-集合-Set-ConcurrentSkipListSet
- 【Leetcode刷题Python】剑指 Offer II 082. 含有重复元素集合的组合
- Android EditText判断输入字符串的工具类集合
- yll duqiang 制作geo三个独立数据集IPF基因集合 用于分析某个基因是否与生存期相关THBS2 mmp7