C++ - 部分STL容器如何去除重复元素
2014-07-22 17:42
1936 查看
如果元素被保存在vector中,可先对vector里面的元素排序,然后调用unique函数去重,unique(起始迭代器,终止迭代器),返回的是去重以后vector中没有重复元素的下一个位置的迭代器。unique的实现原理大概是判断当前元素是否等于上一个元素,如果等于就将后一个元素向前覆盖掉当前的元素,所以执行完unique()以后返回的迭代器开始到vector.end()的元素都是没有意义的。
如果需要去除重复的元素,可使用下面的代码。
其中erase的用法是(需要清除的元素的起始迭代器,终止位置的下一个位置的迭代器)。
如果需要去除重复的元素,可使用下面的代码。
#include <algorithm> #include <vector> uning namespace std; vector<int> v; sort(v.begin(), v.end()); v.erase(unique(v.begin(), v.end()), v.end());
其中erase的用法是(需要清除的元素的起始迭代器,终止位置的下一个位置的迭代器)。
相关文章推荐
- 【Q&A】stl容器去除重复的元素
- C++ STL中容器部分 有关deque(双端数组形式)的初始化 元素插入 遍历 以及distance()函数的使用 20180322day12
- 小词典 程序 C++ STL (容器部分)练习
- java练习2:去除容器(ArrayList)中重复的元素
- 如何处理C++删除容器中元素时导致的迭代器失效问题
- 如何实现容器元素的过滤(C++学习)
- java怎么判断两个Set 里的对象的值是否相同【两个set中的值是否相等】、java treeset和hashset如何判断元素是否相同【即对象是否完全相同;利用一个set去除重复元素】
- c++剔除容器中重复元素
- 如何对数组中的重复元素进行去除
- C++ STL容器内元素的类型约束
- 【C++ STL应用与实现】56: 使用std::unique删除重复元素
- C++中防止STL中迭代器失效——map/set等关联容器——vector/list/deque等序列容器—如何防止迭代器失效—即erase()的使用
- c++ STL 常用容器元素类型相关限制 指针 引用
- FAQ14: STL中vector容器如何间隔删除元素?
- 去除容器内重复元素
- STL-去除list中重复的元素
- C++中防止STL中迭代器失效__map/set等关联容器vector/list/deque等序列容器_如何防止迭代器失效_即erase()的使用
- 如何去除集合里面的重复元素
- ArrayList容器---去除重复元素
- C++使用STL::vector删除数组内的重复元素