C++ 二维向量迭代中求最小值误差

C++ 二维向量迭代中求最小值误差,c++,vector,iteration,2d,minimum,C++,Vector,Iteration,2d,Minimum,//当minElev在第一行的最后一列插入一个巨大的负值时,Max函数按预期工作。不确定发生了什么以及如何修复 bool pathfinder::\u读取数据(字符串数据\u文件名){ 字符串字符串_1=“”,字符串_2=“”; int行=0,列=0; int x=0;//临时变量 向量温度; 载体a; ifstream fileIn(数据文件名); //如果(!fileIn){ //cerr>字符串1>>列>>字符串2>>行; 对于(int i=0;ix; 温度推回(x); } a、 推回(温

//当minElev在第一行的最后一列插入一个巨大的负值时,Max函数按预期工作。不确定发生了什么以及如何修复

bool pathfinder::\u读取数据(字符串数据\u文件名){
字符串字符串_1=“”,字符串_2=“”;
int行=0,列=0;
int x=0;//临时变量
向量温度;
载体a;
ifstream fileIn(数据文件名);
//如果(!fileIn){
//cerr>字符串1>>列>>字符串2>>行;
对于(int i=0;i>x;
温度推回(x);
}
a、 推回(温度);
温度清除();
}
int-maxElev=a[0][0];
int minElev=a[0][0];
对于(int i=0;imaxElev){
maxElev=a[i][j];
}
if(a[i][j]
j
看起来它被允许越界。Crom只知道如果它在分配给
向量的存储区之外(如果它读取任何内容),程序将读取什么值。为了防止这种情况发生

for(int j = 0; j < a.size(); j++)
for(int j=0;j
需要改成

for(int j = 0; j < a[i].size(); j++)
for(int j=0;j

此更改将运行
j
从零到存储在
a[i]

的行
vector
的大小,矩阵是正方形吗?如果不是
a.size()
可能不会对这两个维度进行剪切。取决于
a
是什么,
a.size()
可能根本无法解决这个问题。很难说这里到底出了什么问题。这个代码可能是完美的,在您向我们展示的代码开始之前,您有一小队跳舞的小精灵在几行代码中破坏了大破坏。您可能可以用一个。希望能让它更清楚?:)来挽救这个问题。
(int j=0;j
需要
for(int j=0;j
。这将运行
j
从零到存储在
a[i]
的行
向量的大小,无论大小。我正在打破规则并在评论中回答。请稍候……非常感谢!