vector模板题
You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
题目描述
现有一个动态数组(Vector)容器,支持以下操作:插入元素、删除元素、查询元素和修改元素。你需要实现这个动态数组,并处理可能的边界情况。具体规则如下:
- 插入操作:在数组末尾添加元素。
- 删除操作:删除指定位置的元素,若位置不合法则操作无效。
- 查询操作:获取指定位置的元素,若位置不合法则返回特殊值。
- 修改操作:修改指定位置的元素值,若位置不合法则操作无效。
操作完成后,需输出最终数组的元素个数及所有元素。
输入格式
- 第一行输入一个整数
q
(1 ≤ q ≤ 1000000
),表示操作的总次数。 - 接下来
q
行,每行表示一次操作,格式如下:- 插入操作:
1 x
(在数组末尾添加元素x
)。 - 删除操作:
2 pos
(删除位置pos
的元素,位置从0开始)。 - 查询操作:
3 pos
(查询位置pos
的元素)。 - 修改操作:
4 pos x
(将位置pos
的元素修改为x
)。
- 插入操作:
输出格式
- 对于每次查询操作(操作3),输出一行整数,表示查询结果。若位置不合法,输出
-1
。 - 所有操作完成后,输出两行:
- 第一行:一个整数,表示数组的元素个数。
- 第二行:数组的所有元素,按顺序输出,元素之间用空格分隔。若数组为空,输出空行。
样例 1 输入
5
1 10
1 20
3 1
2 0
3 0
样例 1 输出
20
20
1
20
样例说明
- 插入操作:依次插入10和20,数组变为
[10, 20]
。 - 查询操作:查询位置1的元素,返回20。
- 删除操作:删除位置0的元素,数组变为
[20]
。 - 查询操作:查询位置0的元素,返回20。
- 最终输出:数组元素个数为1,元素为20。
测试点约束
- 操作次数
q ≤ 1000000
。 - 元素值
x
的取值范围为int
(-2^31 ~ 2^31-1)。 - 所有操作的位置
pos
均为非负整数。 - 除了操作3,如果操作不合法则忽略
7.25造数据
- Status
- Done
- Rule
- IOI
- Problem
- 13
- Start at
- 2025-7-25 18:00
- End at
- 2025-7-25 21:00
- Duration
- 3 hour(s)
- Host
- Partic.
- 9