AtCoder-abc408_b 解析
题目链接
让我们一步一步详细分析这个问题:
题目要求我们实现去重并排序的功能,这在C++中可以直接使用set容器来实现。set是STL中的一个关联容器,具有以下特性:
- 自动去重:所有元素都是唯一的
- 自动排序:默认按升序排列
- 高效的查找:基于红黑树实现,查找复杂度为O(logn)
具体实现步骤如下:
- 创建一个set容器
- 将所有输入元素插入set中
- 遍历set输出结果
应用场景:
- 统计用户访问次数时去重
- 需要快速查找且数据唯一的情况
- 自动排序的需求场景
注意事项:
- set不支持随机访问
- 插入和删除操作会影响迭代器
- 如需降序排列,可使用set<int, greater<int>>
上代码:
#include<iostream>
#include<set>
using namespace std;
set<int> s;
int n,a;
int main(){cin>>n;while(n--){cin>>a;s.insert(a);}cout<<s.size()<<endl;for(auto i:s) cout<<i<<" ";return 0;
}
求关注