1.代码
#include<iostream>
#include<vector>
using namespace std;
int n,q,opt,i,j,k;
int main()
{
cin>>n>>q;
vector< vector<int> > a(n+1); //确定第一维数组大小
while (q--)
{
cin>>opt;
if (opt==1)
{
cin>>i>>j>>k;
if (a[i].size()<j+1)
a[i].resize(j+1); //更改第二维大小
a[i][j]=k;
}
else
{
cin>>i>>j;
cout<<a[i][j]<<endl;
}
}
return 0;
}
#易错提醒
此法定义vector必须在读入n之后,这样定义第一维大小时才是一个确定的数值。
和普通数组一样,定义大小不能是一个变量n,而读入后n就是一个确定的数值。
2.二维数组第一维的另一种定义方法
vector<vector<int> > a;
cin>>n>>q;
a.resize(n+1);
此时是只改变第一维大小
3.代码技巧
不需要另开数组去记录每一次读入的数据,只需定义每次读入时需要的变量数,本题中为opt,i,j,k,这样每次读入都可以使用这四个变量。