weixin_43718605 2019-09-08 16:25 采纳率: 0%
浏览 2351

c++ 中vector subscript out of range 怎么解决?

#include "pch.h"
#include <iostream>
using namespace std;
#include<vector>

int main()
{
        int i = 0; int j = 0;
        int row, column;
        cout << "输入迷宫的大小";
        cin >> row >> column;
        vector <vector <int>> maze(row);
        for ( i = 0; i < row; i++)
            maze[i].resize(column);
        cout << "输入迷宫的通路和阻碍";
        for ( i = 0; i < maze.size(); i++)
        {
            for ( j = 0; j < maze[0].size(); j++)
            {
                cin >> maze[row][column];
            }
        }
        for ( i = 0; i < row; i++)
        {
            for ( j = 0; j < column; j++)
            {
                if (maze[i][j] == 1)
                    cout << "■";
                else
                    cout << " ";
            }cout << "/n";
        }cout << "/n";//打印出迷宫
}

vector subscript out of range
图片说明

这是什么原因?新手求帮助!

  • 写回答

4条回答 默认 最新

  • threenewbee 2019-09-08 16:32
    关注

    调试方式运行,看maze的下标和maze每一行的下标,下面的报错是越界造成的。
    for循环里
    cin >> maze[row][column];
    这里应该是
    cin >> maze[i][j];
    吧,总之仔细检查

    评论

报告相同问题?