vector subscript out of range数组下标越界错误「建议收藏」

vector subscript out of range数组下标越界错误「建议收藏」在使用vector二维数组时,产生vectorsubscriptoutofrange错误,检查之后并没有发现数组下标越界问题,百度了一下,发现原来是数组并没有初始化赋值,没有分配空间,所以不能采用下标的方式进行访问。解决方法有两个,一个是初始化数组的时候为其分配空间,其值全部赋值为0。vector<vector<int>>myvec(n,vector<int>(n,0));另一个就是使用vector.push_back添加元素,不使用下

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

在使用vector二维数组时,产生 vector subscript out of range 错误,检查之

后并没有发现数组下标越界问题,百度了一下,发现原来是数组并没有初始化

赋值,没有分配空间,所以不能采用下标的方式进行访问。

解决方法有两个,一个是初始化数组的时候为其分配空间,其值全部赋值为0。

vector<vector<int> > myvec(n, vector<int>(n, 0));

另一个就是使用 vector.push_back 添加元素,不使用下标访问赋值的方式。

下面是出问题的程序:

//构造杨辉三角
class Solution { 
   
public:
	vector<vector<int>> generate(int numRows) { 
   
		vector<vector<int>> res(numRows);
		if (numRows < 1) return res;
		for (int i = 0; i < numRows; i++)
		{ 
   
			for (int j = 0; j <= i; j++)
			{ 
   
				if (j == 0 || j == i)
					res[i][j] = 1;
				else
					res[i][j] = res[i - 1][j - 1] + res[i - 1][j];
			}
		}
		return res;
	}
};

采用 vector.push_back 的方式解决了问题。

//构造杨辉三角
class Solution { 
   
public:
	vector<vector<int>> generate(int numRows) { 
   
		vector<vector<int>> res(numRows);
		if (numRows < 1) return res;
		for (int i = 0; i < numRows; i++)
		{ 
   
			for (int j = 0; j <= i; j++)
			{ 
   
				if (j == 0 || j == i)
					res[i].push_back(1);
				else
					res[i].push_back(res[i - 1][j - 1] + res[i - 1][j]);
			}
		}
		return res;
	}
};
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188851.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • C语言冒泡法_冒泡编程c语言

    C语言冒泡法_冒泡编程c语言在考试前依然有很多同学不清楚冒泡法怎么用所以这期我专门整理了一下冒泡法的用法,供大家参考哦!

    2022年8月31日
    2
  • idea 2021.5激活码【注册码】

    idea 2021.5激活码【注册码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    51
  • webpackdevtool配置简单对比简书_钢铁雄心4toolpackMOD

    webpackdevtool配置简单对比简书_钢铁雄心4toolpackMOD作用:webpack会将js代码进行压缩打包,loader也会处理相应代码,打包后代码很难进行查看,这也使得开发人员调试时很难找到对应代码位置。此时可采用devtool,通过资源地图的方式,给出打包后代码到原始代码的映射,方便开发人员调试。要点:webpack官方给出了多种模式,模式间主要区别以及应用场景已经给出,下面是主要参考参数参数名参数描述参数值devtool可以使用的devtool根据基础模式可自行组合,基础模式有:(eval、cheap、module、inli.

    2022年10月5日
    2
  • 【Linux】vim的复制粘贴

    【Linux】vim的复制粘贴vim复制粘贴1.选定文本块。使用v进入可视模式,移动光标键选定内容。2.复制的命令是y,即yank(提起),常用的命令如下:y在使用v模式选定了某一块的时候,复制选定块到缓冲区用;yy复制整行(nyy或者yny,复制n行,n为数字);y^复制当前到行头的内容;y$复制当前到行尾的内容;yw复制一个word(nyw或者ynw,复制n个word,n为数字);yG复制至档尾(nyG或者ynG,复制到第n行,例如1yG或者y1G,复制到档尾)

    2022年9月16日
    2
  • pycharm2021.10激活码教程【最新永久激活】[通俗易懂]

    (pycharm2021.10激活码教程)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html0UY7RF7AC5-eyJsaWNlbnNlSW…

    2022年3月28日
    85
  • Win10安装jdk11及环境变量配置

    Win10安装jdk11及环境变量配置Win10安装jdk11及环境变量配置写在前面卸载旧版本jdk下载jdk11配置环境变量经验教训写在前面我第一次安装java是在17年初,距离现在已经一年半了。今天上oracle官网一看,jdk都已经更新到11.0.1了,然而我用的还是1.8.0_171版本的老古董,遂决定把jdk升级一下,结果没想到这一升级就折腾了老半天。在这里把我的升级的详细步骤以及经验教训和大家分享一下。卸载旧版本jd…

    2022年7月24日
    11

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号