神奇的STL--unique

神奇的STL–unique

总是对STL有着莫名其妙的抗拒…
然后总是不想接受新的sth…
比如vector,map,set,string到现在都不会…
也许是原来用C的锅吧…
最近终于接受了unique…
unique用于数组中相邻数字的去重,所以一般配合SLT-sort使用。
unique的返回值是第一个重复的元素的地址,所以减去数组中第一个元素的地址就是去重后数组的长度。

code

#include<bits/stdc++.h>
using namespace std;
int n,a[1001];
int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&a[i]);
    }
    sort(a+1,a+n+1);
    n=unique(a+1,a+n+1)-a-1;
    for(int i=1;i<=n;i++)
        printf("%d ",a[i]);
    return 0;
}
/*test data
10
1 9 2 1 2 8 9 10 9 1
*/

其实还有用vector的用法,然而不会vector,GG。那就不说了。