我一直在让矢量下标超出范围。我试图弄清楚出了什么问题,但失败了。有人可以帮帮我吗?
#include <iostream>
#include <string>
#include <fstream>
#include <vector>
using namespace std;
int main(){
vector<vector<vector<double>>> kernelWindow;
kernelWindow.resize(6, vector<vector<double>>(5, vector<double>(3,0)));
for(int m = 0; m <= 6; m++){
for(int n = 1; n <= 5-1; n++){
kernelWindow[m][n][0] = 22;
kernelWindow[m][n][1] = 32;
kernelWindow[m][n][2] = 42;
}
}
}
答案 0 :(得分:0)
kernelWindow.resize(6, ...);
for(...; m <= 6; ...)
kernelWindow [6]不存在
答案 1 :(得分:0)
你的错误在于:
for(int m = 0; m <= 6; m++){
kernelWindow
只有6个单元格,范围从0到5,而不是0到6。