HM186 货架三遍巡检
HM186 货架三遍巡检
来源: 第 186 集 STL初识-vector存放内置数据类型
难度: 普及-
时间限制: 1s
空间限制: 64MB
题目描述
标准库提供了一种可以当成数组用的容器,用来存放内置整型。往里放数要用**尾插**:每次把新元素接到当前序列的末尾。
访问元素必须通过**迭代器**(可以先把它当成指针):
- 起始迭代器指向容器里的**第一个**元素。
- 结束迭代器指向**最后一个元素的下一个位置**。对结束迭代器解引用没有意义,遍历时必须在「起始不等于结束」时才解引用,然后让起始迭代器向后移动。
同一座货架要用三种方式各巡检一遍(三种方式看到的序列必须相同):
- 同时保存起始迭代器和结束迭代器,用
while循环前进。 - 把「起始、未到结束、递增」写进
for的三个位置,循环体内解引用。 - 调用标准算法
for_each:传入起始迭代器、结束迭代器,以及一个回调函数名。算法在遍历期间才会去调用这个函数(回调),底层本质上仍是「未到结束则解引用再前进」。使用该算法前需要包含算法头文件。
使用这种容器前必须包含对应头文件。
输入格式
第一行一个整数 \(n\)(\(1 \le n \le 1000\))。
第二行 \(n\) 个整数 \(a_i\)(\(|a_i| \le 10^9\)),按输入顺序依次尾插入容器。
输出格式
共三行,每行用单个空格分隔容器中的全部整数,行末换行。三行内容相同,分别对应上述三种巡检。
样例
输入 #1
4
10 20 30 40
输出 #1
10 20 30 40
10 20 30 40
10 20 30 40
输入 #2
1
7
输出 #2
7
7
7
说明
- 尾插会保持输入顺序;不要用下标循环代替迭代器。
- 结束迭代器是「越尾」位置,循环条件写成「起始不等于结束」,取到最后一个元素后还要再前进一步才会相等并退出。
- 样例 #1 与常见演示数据一致:先尾插 \(10,20,30,40\),再三种方式各扫一遍。
信息
- ID
- 1185
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者