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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM