[英]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.