神奇的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。那就不说了。