梳理一下关于unique函数的用法参考自
unique函数(包含于algorithm头文件中)
去掉一系列数中相邻相同的数直到最后只保留一个unique函数的使用格式与sort相同
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,i;
cin>>n;
int a[100000];//我就是定义一个足够大的数组,这里不是重点
for(i=0;i<n;i++)
{
cin>>a[i];
}
sort(a,a+n);//这里就是排序
int x=unique(a,a+n)-a;//关键点来了
//这里x表示去重后还剩多少个数
//记得减去前端点
cout<<x<<endl;//x就是排序后没有重复元素的长度
for(i=0;i<x;i++)
{
cout<<a[i]<<" ";
}
return 0;
}
解释:
1 数组从0开始记录数据:unique(a,a+n)
2 数组从1开始记录数据:unique(a+1,a+n+1)最后数组的长度x:
1 数组从0开始记录数据:x = unique(a,a+n) - a;
2 数组从1开始记录数据:x = unique(a+1,a+n+1) - (a+1);
**记得减去前端点**
需要注意的是,unique函数会将重复的元素放到原数组的末尾,实际应用中需要对边界进行重新赋值操作