题目描述
给出一个包含 n 个元素的数组 A,去掉 A 中重复的数字并从小到大排序输出。
输入格式
第一行:1个数n表示数组的长度(2 <= n <= 100000)。 第2至n+1行:每行1个数,对应数组的元素(1<= a[i] <= 10^9)
输出格式
输出去重并从小到大排序好的数组,每行一个数。
样例
【样例输入】
5
10
8
7
8
10
【样例输出】
7
8
10
数据范围与提示
2 <= n <= 100000 1<= a[i] <= 10^9
一些想法
这道题用 set 容器做是非常简单的,只用输入数后,直接丢入set 容器,然后再用迭代器输出就行了,而 set 容器和迭代器会自动去重和排序。
详细请看代码中的注释
AC代码
cpp
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
set<int> s;
for(int i=1;i<=n;i++){
int a;
cin>>a;
s.insert(a);//将a插入set中,自动去重
}
set<int>::iterator it;//声明set的迭代器
for(it=s.begin();it!=s.end();it++){//遍历set
cout<<*it<<endl;// 输出当前元素,自动按升序排列
}
return 0;
}