c++中unique函数实现的只是相邻相同元素的去重,因此实现方式跟我们想象的去重函数不完全一样。因此,unique函数本身是不能实现对未排序的序列的去重的。因此去重时需要先排序
#include <iostream>
#include <algorithm>
using namespace std;
int main(void)
{
int n;
cin >> n;
int arr[20];
for (int i = 0; i < n; i++)
cin >> arr[i];
sort(arr, arr + n);
n = unique(arr, arr + n)-arr;//n为去重后元素的个数
cout << n << endl;
for (int i = 0; i <n; i++)
cout << arr[i] <<' ';
//******************************************************
//*************************************************
//若arr从arr[1]开始
// sort(arr, arr + n+1);
// n = unique(arr, arr + n+1)-arr-1;
//cout << n << endl;
// for (int i = 1; i <= n; i++)
// cout << arr[i] <<' ';
return 0;
}