vector subscript out of range数组下标越界错误「建议收藏」
2023-06-13 09:14:59 时间
大家好,又见面了,我是你们的朋友全栈君。
在使用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.cn/188851.html原文链接:https://javaforall.cn
相关文章
- ASP.net错误:Control’ctl00_ctl00_ContentPlaceHolder2[通俗易懂]
- java 字符串数组 下标_运行时错误9:使用字符串数组时,下标超出范围「建议收藏」
- Discuz! Q官方文档Windows下提示 CA 根证书库错误如何解决?
- 【错误记录】Google Play 上架报错 ( APK 大小 | 目标 API 级别 | Google Play 帮助文档 )
- 14086错误解决Oracle数据库技术指南(14086 oracle)
- 2003年MySQL连接出错的心酸历程(2003错误mysql)
- Oracle 993错误治疗常见数据库非正常状态(oracle993错误)
- PHP正则的UnknownModifier错误解决方法
- PHP的异常处理、错误的抛出及回调函数等面向对象的错误处理方法
- IIS默认的错误页不友好解决方法
- C#新手常犯的错误汇总