P1059 明明的随机数(set用法和遍历)

                                                                                                                         (学习自用)

P1059 [NOIP2006 普及组] 明明的随机数

提交392.98k

通过179.01k

时间限制1.00s

内存限制125.00MB

题目描述

明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了 N 个 11 到 10001000 之间的随机整数 (N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。

输入格式

输入有两行,第 11 行为 11 个正整数,表示所生成的随机数的个数 N。

第 22 行有 N 个用空格隔开的正整数,为所产生的随机数。

输出格式

输出也是两行,第 11 行为 11 个正整数 M,表示不相同的随机数的个数。

第 22 行为 M 个用空格隔开的正整数,为从小到大排好序的不相同的随机数。

输入输出样例

输入 #1复制

10
20 40 32 67 40 20 89 300 400 15

输出 #1复制

8
15 20 32 40 67 89 300 400

说明/提示

NOIP 2006 普及组 第一题

#include 
using namespace std;
set cf;
int main() {
	int n,m;
	cin>>n;
	for(int i=0;i>m;
		cf.insert(m);
	}
	cout<

set会自动去重并升序排序

更详细的用法:

本文链接:C++---STL标准库之set函数全解析,示例讲解,清晰易懂!_c++ stl set-CSDN博客

附上常用方法来自

CSDN博主「胡涂涂~」原文链接:https://blog.csdn.net/KUNPLAYBOY/article/details/124385277

常用方法:
1、begin(); 返回set容器的第一个元素,其中反向遍历用rbegin()
2、end(); 返回set容器的最后一个元素,其中反向遍历用rend()
3、clear(); 删除set容器中的所有的元素
4、empty(); 判断set容器是否为空
5、max_size(); 返回set容器可能包含的元素最大个数
6、size(); 返回当前set容器中的元素个数
6、Tip: 需要注意的是begin()和end()函数是不检查set是否为空的,使用前最好使用empty()检验一下set是否为空.
6、count(); 用来查找set中某个某个键值出现的次数。这个函数在set并不是很实用,因为一个键值在set只可能出现0或1次,这样就变成了判断某一键值是否在set出现过了。
7、erase(iterator); 删除定位器iterator指向的值
8、erase(first,second); 删除定位器first和second之间的值
9、erase(key_value); 删除键值key_value的值
10、insert(key_value); 插入元素

你可能感兴趣的:(算法,数据结构)