我试图在C++中将 vector 的 vector 用作2D数组。我必须阅读用户的输入。用户还可以输入行数和列数。
假设我读了m * n矩阵,
我尝试使用reserve(m * n)分配空间,但在构建时也出现错误。
这是我面临的一个普遍问题,我的意思是即使在字符串中按字符读取char时,也要如何为其提供空间,以便可以访问索引i(我知道可以使用.resize(given_size)来完成),但是在某些情况下尚不清楚用户将输入多少个字符,这是无法完成的(可以使用+运算符来规避,但这仍然不是直接的解决方案)。
因此,我的主要问题是如何初始化 vector 的 vector (不放入值,而是分配所需的空间,行和列),以便我可以访问[i] [j]来读取值?
我知道可以使用诸如here之类的 vector 来构建矩阵,但是我想先声明一个 vector ,然后接受行和列的输入以分配空间,以便可以访问[i] [j]来输入元素。
最佳答案
std::vector<std::vector<T>> my_vec(m, std::vector<T>(n))
请注意,矩阵的每个T
成员均会调用m * n
的默认构造函数。