c++ - 在 C++ 中初始化 vector 的 vector

标签 c++ vector multidimensional-array stl

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

假设我读取 m * n 矩阵,

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

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

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

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

最佳答案

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

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

关于c++ - 在 C++ 中初始化 vector 的 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31200535/

相关文章:

python - 将二维数组中的每个值乘以另一个二维数组中的对应值

c++ - 在 GTest 中,如何检查非常接近 0 的数字? EXPECT_FLOAT_EQ 不工作

C++ 将数组复制到指针参数

c++ - 将原始 vector 复制到我的 vector 中的问题

php - 如何在php中获取多维数组中的所有键

Javascript用中间值填充数组

c++ - 原子 vector 完全线程安全?

c++ - 是否有 STL 的可读实现?

c++ - 使用 vector 来发出一些预定义的字符串

list - 插入向量时为 "Borrowed Value Does Not Live Long Enough"