在 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
成员调用默认构造函数。
我正在尝试使用 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
成员调用默认构造函数。