1-D-vector II
题目
For n dynamic arrays Ai (i=0,1,…,n−1), perform a sequence of the following operations:
-
pushBack(t, x): Add element x at the end of At.
-
dump(t): Print all elements in At.
-
clear(t): Clear At. If At is empty, do nothing.
Ai is a 0-origin array and it is empty in the initial state.
输入
The input is given in the following format.
n
q
query1
query2
:
queryq
Each query queryi is given by 0 t x or 1 t or 2 t where the first digits 0, 1 and 2 represent pushBack, dump and clear operations respectively. 1≤n≤1,000 1≤q≤500,000 −1,000,000,000≤x≤1,000,000,000 The total number of elements printed by dump operations do not exceed 500,000
输出
For each dump operation, print elements of At a line. Separete adjacency elements by a space character (do not print the space after the last element). Note that, if the array is empty, an empty line should be printed.
3 13
0 0 1
0 0 2
0 0 3
0 1 -1
0 2 4
0 2 5
1 0
1 1
1 2
2 1
1 0
1 1
1 2
输出
1 2 3
-1
4 5
1 2 3
4 5
题解(代码流程)
#include<bits/stdc++.h>
using namespace std;
#define endl '\n'
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int n;
cin >> n;
vector<vector<int>> a(n);//定义嵌套数组
int q;
cin >> q;
while (q--) {
int p;
cin >> p;
if (p == 0) {
int t, x;
cin >> t >> x;
a[t].push_back(x);//
} else if (p == 1) {
int t;
cin >> t;
for (auto e:a[t]) {
cout << e << " ";
}
cout << endl;
} else {
int t;
cin >> t;
a[t].clear();//清除t层元素
}
}
return 0;
}
总结
掌握双重数组的定义与调用,对比以往c语言中{int a[];}的数组与双重数组。
remember
- clear()