两种方法
一:使用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; }