描述:
您将得到一个未排序的整数数组。您的任务是对这个数组进行排序,并杀死其中可能出现的重复元素。
输入描述:
对于每种情况,输入的第一行都包含一个整数N,表示该数组中的数字数量(1≤N≤1000)。接下来的N行包含原始数组的N个整数(每行一个数字)。
输出描述: 对于每种情况,outtput文件最多应包含N个按升序排序的数字。输出文件中的每个数字都应该只出现一次。
示例1.
输入:
6
8 8 7 3 7 7
输出:
3 7 8
解题思路:
(1)定义整数容器a;
(2)对a进行排序;
(3)一起使用erase()和unique()函数,去掉重复元素;
(注:此处的删除是真正的删除,即从容器中去除重复的元素,容器的长度也发生了变换;而单纯的使用unique函数的话,容器的长度并没有发生变化,只是元素的位置发生了变化)关于erase函数的用法)
代码:
#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
vector<int > a; //定义整数容器
int main() {
int n;
while(cin>>n){
int b[n];
for(int i=0;i<n;i++){
cin>>b[i];
a.push_back(b[i]); //压入容器
}
sort(a.begin(), a.end()); //排序
a.erase(unique(a.begin(),a.end()),a.end()); //去掉重复元素
for(int i=0;i<a.size();i++){
cout<<a[i]<<" ";
}
cout<<endl;
}
return 0;
}