HM198 货架后期赋值
HM198 货架后期赋值
来源: 第 198 集 vector容器-赋值操作
难度: 普及-
时间限制: 1s
空间限制: 64MB
题目描述
动态数组创建完成之后,还可以再给已经存在的货架赋值。赋值和构造不是一回事:构造写在对象诞生的那一行,赋值发生在对象已经存在之后。
请先把输入序列依次尾插入货架 v1,再按下面三种方式分别得到 v2、v3、v4:
- 重载的赋值运算符
=:v2 = v1,把整座货架拷过去。这是最直接的写法。 - 成员函数
assign提供一对迭代器。区间是左闭右开:会取到起始迭代器指向的元素,**不会取到**结束迭代器指向的元素。 - 仍用
assign,按「\(k\) 个相同货物」写入,即assign(k, x)。这和构造时「一开始就填 \(k\) 个 \(x\)」参数长得像,但写的位置不同,属于后期赋值。
打印时用迭代器从 begin 走到 end,元素之间用单个空格分隔。
输入格式
第一行一个整数 \(n\),表示 v1 的货物件数。
第二行 \(n\) 个整数 \(a_i\),依次尾插入 v1。
第三行两个整数 \(L\)、\(R\),表示区间赋值使用的半开区间:起始迭代器为 begin()+L,结束迭代器为 begin()+R。
第四行两个整数 \(k\)、\(x\),表示 assign(k, x)。
输出格式
共四行,每行用单个空格分隔该货架上的全部整数,行末无多余空格:
v1(原始货架)v2(v2 = v1)v3(assign半开区间 \([L,R)\))v4(\(k\) 个 \(x\))
某座货架为空时,该行只输出换行。
样例
输入 #1
10
0 1 2 3 4 5 6 7 8 9
0 10
10 100
输出 #1
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9
100 100 100 100 100 100 100 100 100 100
输入 #2
5
1 2 3 4 5
1 4
3 7
输出 #2
1 2 3 4 5
1 2 3 4 5
2 3 4
7 7 7
说明
\(1 \le n \le 1000\),\(|a_i|,|x| \le 10^9\),\(0 \le L \le R \le n\),\(0 \le k \le 1000\)。
=与assign都是容器已经存在之后的赋值。- 样例 #2 的 \([1,4)\) 只取下标 \(1,2,3\),取不到下标 \(4\)。
信息
- ID
- 1197
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者