繁体   English   中英

进程在向量中返回 -1073741819 (0xC0000005)

[英]Process returned -1073741819 (0xC0000005) in vectors

我知道向量是一个动态数组,因此您可以根据需要输入值。 但是在这段代码中,在我在向量中插入任何值之前,代码崩溃了!! 我不知道我做错了什么,而且我是编程新手。 我试图给它一个大小,但它不起作用。

    #include <iostream>
    #include <vector>
    using namespace std;

    int main()
    {
         int H,W;
         cin >> H >> W;

         vector <vector <int>> A;

         for (int i = 0; i < H; i++)
         for (int j = 0; j < W; j++)
            cin >> A[i][j];
    

    return 0;
}

您正在读取A[i][j]值,而向量A没有元素。

你必须分配元素来读取那里的东西。

要预先分配,您可以使用构造函数。

#include <iostream>
#include <vector>
using namespace std;

int main()
{
    int H,W;
    cin >> H >> W;

    // allocate H W-element vectors
    vector <vector <int>> A(H, vector <int>(W));

    for (int i = 0; i < H; i++)
    for (int j = 0; j < W; j++)
        cin >> A[i][j];

    return 0;
}

或者,您可以通过push_back()插入元素。

#include <iostream>
#include <vector>
using namespace std;

int main()
{
    int H,W;
    cin >> H >> W;

    vector <vector <int>> A;

    for (int i = 0; i < H; i++)
    {
        vector <int> row;
        for (int j = 0; j < W; j++)
        {
            int value;
            cin >> value;
            row.push_back(value);
        }
        A.push_back(row);
    }

    return 0;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM