vector实现去重
Posted xiaokang01
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vector实现去重相关的知识,希望对你有一定的参考价值。
两种方法
一:使用set
二:使用sort+unique
就是:先排序,然后用unique把重复的数字都放在后面,再用erase删除
// // Created by LK on 2020/3/31. // #include <iostream> #include <vector> #include <set> #include <algorithm> using namespace std; // 去重方法一,使用set void RemoveRepeat1(vector<int>& vec) { set<int> setVec(vec.begin(), vec.end()); vec.assign(setVec.begin(), setVec.end()); } // 方法二,使用sort + unique函数 // 先排序,然后去重 void RemoveRepeat2(vector<int> &vec) { sort(vec.begin(),vec.end()); // unique让所有重复的数都放到最后,返回一个迭代器 // 1 2 3 4 3 就是返回3的迭代器 auto it = unique(vec.begin(), vec.end()); vec.erase(it, vec.end()); } int main() { vector<int> vec = {1,2,2,1,4,2,4,7,43}; RemoveRepeat2(vec); for(auto it : vec) cout << it << " "; return 0; }
以上是关于vector实现去重的主要内容,如果未能解决你的问题,请参考以下文章
C++判断元素是否在vector中,对vector去重,两个vector求交集并集
debug底层java代码,对list中的数据去重的正确姿势,及对比java list remove正确使用方法与错误使用