• STL中去重函数unique


    一:unique(a.begin(),a.end());去重函数只是去掉连续的重复值,对于不连续的值没有影响,SO,在使用前一般需要进行排序处理;

    二:  vector<int>::iterator new_end=unique(a.begin(),a.end()); 函数返回值是一个指向新的结束位置的迭代器;

    unique()函数原理如果两个连续的函数是重复的,则将第二个数用后边的不重复的数字进行覆盖,所以在unique处理之后还会在new_end和a.end() 中间存在数字,需要进行删除

    简单处理的代码:

    sort(a.begin(),a.end());//提前进行排序
    a.erase(unique(a.begin(),a.end()),a.end());//去重并删除后边多余的数

     示例:

    #include<iostream>
    #include<algorithm>
    #include<vector>
    using namespace std;
    
    int main()
    {
        cin.tie(0);
        cout.tie(0);
        ios::sync_with_stdio(false);
    
        int n,num;
        vector<int> a;
        cin>>n;
        for(int  i=0;i<n;i++)
            {
                cin>>num;
                a.push_back(num);
            }
        sort(a.begin(),a.end());
        a.erase(unique(a.begin(),a.end()),a.end());
        cout<<a.size()<<endl;
        for(int i=0;i<a.size();i++)
        {
            cout<<a[i];
            if(i<a.size()-1)cout<<' ';
        }
        return 0;
    }
  • 相关阅读:
    UISegmentControl
    UISwitch 开关控件
    UI弹出键盘和收回键盘
    UITextField的属性设置
    UIButton的属性设置
    UILabel 的属性设置
    创建UIView对象
    id和instancetype的异同
    SPOJ FIBPOL
    HDU 6168 Numbers
  • 原文地址:https://www.cnblogs.com/zwx7616/p/11268458.html
Copyright © 2020-2023  润新知