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

Initialize Vector Of Vectors in C++

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

假设我读取 m * n 矩阵,

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

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

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

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

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

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