码迷,mamicode.com
首页 > 其他好文 > 详细

vector实现去重

时间:2020-03-31 12:40:05      阅读:58      评论:0      收藏:0      [点我收藏+]

标签:return   返回   一个   ios   style   out   names   auto   remove   

两种方法

  一:使用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实现去重

标签:return   返回   一个   ios   style   out   names   auto   remove   

原文地址:https://www.cnblogs.com/xiaokang01/p/12603924.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!