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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java高级语言程序设计_高级程序设计语言包括

    java高级语言程序设计_高级程序设计语言包括Java程序设计(高级及专题)- XML

    2022年4月22日
    58
  • kafka集群及与springboot集成

    kafka集群及与springboot集成linux搭建,kafkao3节点虚拟机为CentOS6,ip为192.168.1.128,192.168.1.129和192.168.1.130,域名分别为master,worker1,worker21.集群#192.168.1.128[root@masterlocal]#cd/home/gilbert/app/rar/[root@masterrar]#tarzxv…

    2022年4月25日
    42
  • getParameterValues使用

    getParameterValues使用request.getParameterValues:接收名字相同,值有多个的变量,返回一个数据。如: String[]courseNumbers=request.getParameterValues(“courseNumberForCourse”);request.getParameter:接收单一值变量。如:stringtype=request.getPara

    2022年7月22日
    18
  • JDK1.8下载、安装和环境配置教程

    JDK1.8下载、安装和环境配置教程一、下载安装包1.JDK1.8百度云下载路径:链接:https://pan.baidu.com/s/1ozCGy53AIeQIHWL6s9oAbw提取码:04lf网盘放的是jdk1.8版本中的1.8.0_152的版本2.如果大家想下载别的版本,可以去官网:www.oracle.com下载,进入官网页面,然后点击Downloads。…

    2022年6月12日
    32
  • 腾讯业务架构:六大事业群

    腾讯业务架构:六大事业群2018年9月29日,腾讯宣布在BU化的基础上进行组织架构调整,将原有七大事业群调整为六大事业群,具体为:a.保留企业发展事业群(CDG)、互动娱乐事业群(IEG)、技术工程事业群(T…

    2022年9月18日
    5
  • chmod命令详细用法

    chmod命令详细用法指令名称:chmod使用权限:所有使用者使用方式:chmod[-cfvR][–help][–version]modefile…说明:Linux/Unix的档案调用权限分为三级:档案拥有者

    2022年6月30日
    25

发表回复

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

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