矢量下标超出范围3D矢量

时间:2015-03-09 06:44:56

标签: c++

我一直在让矢量下标超出范围。我试图弄清楚出了什么问题,但失败了。有人可以帮帮我吗?

#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;
            }
    }
}

2 个答案:

答案 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。