洛谷P3613——vector 可变长数组

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,这样每次读入都可以使用这四个变量。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值