在 C++ 中初始化向量的向量

adr*_*008 2 c++ stl vector multidimensional-array

我正在尝试使用 C++ 中的向量向量作为二维数组。我必须读取用户的输入。行数和列数也由用户输入。

假设我读取 m * n 矩阵,

我尝试使用 Reserve(m*n) 分配空间,但在构建时也出现错误。

这是我面临的一个普遍问题,我的意思是即使在逐个字符读取的字符串中,如何为其提供空间以便可以访问索引 i (我知道可以使用 .resize(given_size) 来完成),但在以下情况下不知道用户将输入多少个字符,这是无法完成的(可以使用 + 运算符来规避,但这仍然不是直接的解决方案)。

所以,我的主要问题是如何初始化向量向量(不放入值,而只是分配所需的空间、行和列),以便我可以访问 [i][j] 来读取值?

我知道可以像这里一样使用向量的向量来构建矩阵,但我想首先声明一个向量的向量,然后获取行和列的输入来分配空间,以便我可以访问 [i][j] 输入元素。

Zer*_*ges 7

std::vector<std::vector<T>> my_vec(m, std::vector<T>(n))

请注意,T矩阵的每个成员都会调用默认构造函数m * n