HM235 倒序词典
HM235 倒序词典
来源: 第 235 集 map容器-排序
难度: 普及-
时间限制: 1s
空间限制: 64MB
题目描述
map 默认按键从小到大排列。插入顺序打乱也一样,因为默认比较器已经在创建时定死。想改成按键从大到小,必须在**尚未插入**时,于模板参数的第三位放入仿函数类型。插完再改已经来不及。
仿函数是重载了函数调用运算符 () 的类。对两个 int 键做降序时,返回布尔值,并在“前一个键大于后一个键”时为真。把这个类型写进 map<int, int, MyCompare>。遍历用的迭代器也要带上 MyCompare。
键若是自定义类型,同样必须指定排序规则,否则编译器不知道该比姓名还是年龄,插不进去。本题键和实值都是整数。
读入若干键值对,分别插入默认升序表 m1 和创建时就指定降序仿函数的表 m2。按各自迭代器顺序打印。
输入格式
第一行一个整数 \(n\)。
接下来 \(n\) 行,每行两个整数 \(k\)、\(v\)。当 \(n=0\) 时没有这些行。
输出格式
第一行:m1(按键升序)。
第二行:m2(按键降序)。
一对写成 key:value,对与对之间一个空格。空表输出空行。
样例
输入 #1
5
1 10
2 20
5 50
3 30
4 40
输出 #1
1:10 2:20 3:30 4:40 5:50
5:50 4:40 3:30 2:20 1:10
输入 #2
3
2 20
1 10
2 99
输出 #2
1:10 2:20
2:20 1:10
说明
\(0 \le n \le 1000\),键与值的绝对值不超过 \(10^9\)。重复键进不去。
不要插完再拷到数组里排序。必须在创建 m2 时放入仿函数,插入过程中按该规则落点。样例 #1 即使按 \(1,2,5,3,4\) 插入,升序仍是 \(1\) 到 \(5\),降序是 \(5\) 到 \(1\)。
信息
- ID
- 1234
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者