zoukankan      html  css  js  c++  java
  • P1059 明明的随机数及unique去重的用法

    unique 去重

    返回去重之后的指针,仍然为前闭后开,可计算出去重后的元素个数m。

    把一个vector去重:

    int m=unique(a.begin(),a.end())-a.begin();

    把一个数组去重,元素存放在下标1~n:

    int m=unique(a+1,a+n+1)-(a+1);

    注意:使用unique之前必须先进行一遍sort排序,否则去重会无法进行!

    unique并没有将重复的元素删除,而是把重复的元素按照原来在数组中的位置放到了数组的最后面。

    下面是一道unique的应用题:

     首先,sort和unique函数都位于<algorithm>库中,故不要忘记写头文件。对n和数组进行定义和输入输出:

    #include<iostream>
    #include<algorithm>
    using namespace std;
    int n,i,j;
    int a[105];
    int main(){
        cin>>n;
        for(i=1;i<=n;i++){
            cin>>a[i];    
        }
        return 0;
    } 

    因为最后都要按顺序输出,加之unique要先排序才能去重,所以我们先sort排序。

    #include<iostream>
    #include<algorithm>
    using namespace std;
    int n,i,j;
    int a[105];
    int main(){
        cin>>n;
        for(i=1;i<=n;i++){
            cin>>a[i];    
        }
        sort(a+1,a+n+1); 
        return 0;
    } 

    然后我们定义一个变量m记录排序后的元素个数,并进行去重,输出m。

    #include<iostream>
    #include<algorithm>
    using namespace std;
    int n,i,j,m;
    int a[105];
    int main(){
        cin>>n;
        for(i=1;i<=n;i++){
            cin>>a[i];    
        }
        sort(a+1,a+n+1); 
        m=unique(a+1,a+n+1)-(a+1);
        cout<<m<<endl;
        return 0;
    } 

    最后只需要从1到m输出已排好的数即可。

    完整代码:

    #include<iostream>
    #include<algorithm>
    using namespace std;
    int n,i,j,m;
    int a[105];
    int main(){
        cin>>n;
        for(i=1;i<=n;i++){
            cin>>a[i];    
        }
        sort(a+1,a+n+1);
        m=unique(a+1,a+n+1)-(a+1);
        cout<<m<<endl;
        for(i=1;i<=m;i++){
            cout<<a[i]<<' ';
        }
        return 0;
    } 
  • 相关阅读:
    ROW_NUMBER() OVER函数的基本用法
    oracle 中的next_day函数
    宽带大小与实际网速的关系:
    ora-29280 invalid directory path
    [spring]Attribute "scope" must be declared for element type "bean"
    什么是JDK,JRE,SDK,JVM以及API
    管理的常识: 让管理者发挥绩效的7个基本概念 读书笔记
    lua __index的简写
    lua中设置table={}时需要注意的坑
    摄像机旋转
  • 原文地址:https://www.cnblogs.com/qianr/p/13214732.html
Copyright © 2011-2022 走看看