【发布时间】:2021-08-05 12:15:05
【问题描述】:
我想在 C++ 中创建一个维度为 nx2 的向量向量,其中 n(rows) 由用户给出。我正在尝试使用 for 循环在此向量中插入值,但是一旦给出 n(rows) 的值,它就会给出分段错误错误 怎么办?
#include <iostream>
#include <vector>
#include <cstdlib>
#define col 2
using namespace std;
int main()
{
int row;
cin >> row;
vector<vector<int>> vec;
for (int i = 0; i < row; ++i)
{
for (int j = 0; j < col; ++j)
cin >> vec[i][j];
}
return 0;
}
【问题讨论】:
-
你知道建完之后它是空的,对吧?
-
vec[0][0]超出范围,因为vec为空。 -
您需要 resize() 父向量和每个子向量(最好,因为您有信息)或 push_back(),这将起作用,但效率不高。
-
那么我如何调整每个子向量的大小,例如我添加了一行“vec.resize(row)”现在是什么
标签: c++ for-loop vector segmentation-fault