看别人写的主席数看不懂,连数组去重函数都不知道,辣鸡的留下了?
unique()是C++标准库函数里面的函数,其功能是去除相邻的重复元素(只保留一个),所以使用前需要对数组进行排序。
对于unique()需要注意两点:
1.此函数并没有真正的把数组元素删除,而是把重复元素移到最后了。
2.更新n,n=unique(a,a+n)-a.
比如给一个序列n=5,a[]={1,2,4,2,3}.执行函数后a[]={1,2,3,4,2},重复元素并没有被删掉,只是此时n=n=unique(a,a+n)-a=4罢了。
int n;
int a[107];
while(cin>>n)
{
for(int i=0;i<n;i++)
{
cin>>a[i];
}
sort(a,a+n);
n=unique(a,a+n)-a;
for(int i=0;i<n;i++)
{
cout<<a[i]<<" ";
}
}