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

时间:2015-07-03 07:00:48

标签: c++ vector multidimensional-array stl

我试图在C ++中使用矢量矢量作为2D数组。我必须从用户那里读取输入。行数和列数也由用户输入。

Supose I read m * n matrix,

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

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

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

我知道矩阵可以使用here之类的向量向量构建,但我想首先声明向量向量,然后输入行和列来分配空间,以便我可以访问[ i] [j]输入元素。

1 个答案:

答案 0 :(得分:4)

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

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