请教一个有关vector中vector>输入问题

Inkred 2017-03-30 09:09:25
题如:为什么我按照这种方式写的时候输入时出现数组越界,不可以这样子写吗,一定要先放到vector<int>,再放到vector<vector<int>>才行吗?
vector<vector<int>> array;
int a=0;
cin>>a
for(int i=0;i<a;++i)
{
for(int j=0;j<2;++j)
{
cin>>array[i][j];
}
}
请各位大神赐教,谢谢
...全文
348 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Inkred 2017-04-01
  • 打赏
  • 举报
回复
引用 楼主 u012377293 的回复:
题如:为什么我按照这种方式写的时候输入时出现数组越界,不可以这样子写吗,一定要先放到vector<int>,再放到vector<vector<int>>才行吗? vector<vector<int>> array; int a=0; cin>>a for(int i=0;i<a;++i) { for(int j=0;j<2;++j) { cin>>array[i][j]; } } 请各位大神赐教,谢谢
明白了,谢谢,忘记分配大小了,然后array也需要初始话,否则也会运行不通过
赵4老师 2017-03-31
  • 打赏
  • 举报
回复
洋葱!
paschen 版主 2017-03-30
  • 打赏
  • 举报
回复
你的vector<vector<int>>中的元素是:vector<int> 而vector<int>中的元素才是int 所以你要先有vector<int>这一层,再往里面放int的元素 可以这样改:

	vector<vector<int>> array;
	int a=0;
	cin>>a;
	array.resize(a);
	for(int i=0;i<a;++i)
	{
		for(int j=0;j<2;++j)
		{
			int b;
			cin>>b;
			array[i].push_back(b);
		}
	}

65,135

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧