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;
}

 

posted @ 2020-03-31 11:25  Lucky&  阅读(4406)  评论(0编辑  收藏  举报
//返回顶部开始
//返回顶部结束