排序去重板子题题解
chenxi2009 · · 题解
思路
本题考查知识点为排序或 STL 常用函数。
题意为给输入的数列排序并去重,输出之后的数列。本题解重点介绍 STL 函数 sort 和 unique。
给一个整数数列,我们可以使用 sort 函数对它排序,sort 函数的调用方式为 sort(begin_place,end_place);,其中 begin_place 和 end_place 表示排序数组的开头位置和结尾位置。注意:此处的结尾位置为最后一个元素的位置的后一个位置,也即数列后的第一个空位置。STL 系列函数的“结束位置”都是这么定义的。
对于一个有序的数组,我们可以使用 unique 函数对它去重。unique 函数的调用方式为 unique(begin_place,end_place),如果数组里有
现在有个问题:我们怎么知道 begin_place 得出来的数字就是
至此我们已经学会了使用这两个函数,只要对输入的数列进行简单运用就可以通过此题。
(完)
代码
#include<bits/stdc++.h>
using namespace std;
int n,a[200];
int main(){
cin >> n;
for(int i = 1;i <= n;i ++) cin >> a[i];
sort(a + 1,a + n + 1);//排序
n = unique(a + 1,a + n + 1) - (a + 1);//去重,并把去重后的元素个数记为 n
printf("%d\n",n);//输出去重后的元素个数
for(int i = 1;i <= n;i ++) printf("%d ",a[i]);//输出去重后的元素
printf("\n");
return 0;
}