我正在尝试填充动态2D数组
我错了
#include<vector>
cin<<x;
vector<vector<int>> tab(x);
for (int i = 0; i < x; i++)
{
for (int j = 0; j < x; j++)
{
cin>>tab[i][j];
}
}
我也想将其打印到屏幕上
答案 0 :(得分:1)
要创建给定大小std::vector
的{{1}}的{{1}},请使用
std::vectors
要打印它,可以使用循环:
x
拥有矩阵的一种更有效的方法是使用行和列的总大小的std::vector<std::vector<int>> foo(x, std::vector<int>(x));
并相应地计算索引:
for (std::size_t row{}; row < x; ++row) {
for (std::size_t col{}; col < x; ++col)
std::cout foo[row][col] << ' ';
std::cout.put('\n');
}
打印:
std::vector<int>
答案 1 :(得分:0)
vector<vector<int>> tab(x)
这只会为tab
创建一个向量,而不会为子向量创建一个向量。
使用:
vector<vector<int>> tab(x, vector<int>(x));
也要填充子向量。
请注意,这不是创建矩阵的最有效方法。