一、题目
登录—专业IT笔试面试备考平台_牛客网
二、代码
- set去重,再利用vector进行排序
std::set
是一个自带排序功能的容器,它已经按照一定的规则(默认是元素的小于比较)对元素进行了排序。因此,你不能直接对std::set
使用std::sort
,因为它已经有了自己的排序机制,而且不允许直接修改元素的值
#include<iostream>
#include<algorithm>
#include<set>
#include<vector>
using namespace std;
int main()
{
int n;
cin >> n;
set<int>s;
for (int i = 0; i < n; i++)
{
int x;
cin >> x;
s.insert(x);
}
vector<int>v;
set<int>::iterator it = s.begin();
while (it != s.end())
{
v.push_back(*it);
++it;
}
sort(v.begin(), v.end());
cout << s.size() << endl;
it = s.begin();
while (it != s.end())
{
cout << *it << " ";
it++;
}
return 0;
}