HM186 货架三遍巡检

HM186 货架三遍巡检

HM186 货架三遍巡检

来源: 第 186 集 STL初识-vector存放内置数据类型

难度: 普及-

时间限制: 1s

空间限制: 64MB

题目描述

标准库提供了一种可以当成数组用的容器,用来存放内置整型。往里放数要用**尾插**:每次把新元素接到当前序列的末尾。

访问元素必须通过**迭代器**(可以先把它当成指针):

  • 起始迭代器指向容器里的**第一个**元素。
  • 结束迭代器指向**最后一个元素的下一个位置**。对结束迭代器解引用没有意义,遍历时必须在「起始不等于结束」时才解引用,然后让起始迭代器向后移动。

同一座货架要用三种方式各巡检一遍(三种方式看到的序列必须相同):

  1. 同时保存起始迭代器和结束迭代器,用 while 循环前进。
  2. 把「起始、未到结束、递增」写进 for 的三个位置,循环体内解引用。
  3. 调用标准算法 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
通过率
?
上传者