gpt4 book ai didi

C++ 2d Vector下标超出范围错误

转载 作者:行者123 更新时间:2023-11-30 01:15:08 25 4
gpt4 key购买 nike

目前在我的函数中,我有一个声明二维 vector 的方法。

vector <vector<test> > path(int x, int y) //Path function
{
vector <vector<test>> mazeArray(column, vector<test>(row)); //Declaring an object
for (int a = 0; a < column; a++)
{
for (int b = 0; b < row; b++)
{
mazeArray[b][a].setX(b);
mazeArray[b][a].setY(a);
}
}
}

例如,当我尝试运行函数时,path(10,10)。

双 for 循环完美无误地工作,但是如果我更改路径,例如,路径(11,10)或路径(11,13)或两者不相同的数字(int x 和 y ), 将出现错误vector subscript out of range

为什么会这样?谁可以帮我这个事?有什么方法可以修复它,使我输入的任何值都可以接受吗?谢谢。

最佳答案

mazeArray[b][a].setX(b); 

在此语句中,b 可以不同于 [0,row-1],而 mazeArray 的维度为 column * row .所以第一个索引只能有来自 [0,column-1] 的值。所以很可能,你需要像这样初始化 vector - :

vector <vector<test>> mazeArray(row, vector<test>(column)); //Declaring an object

关于C++ 2d Vector下标超出范围错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29085822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com