【发布时间】:2021-07-10 19:10:48
【问题描述】:
我想构造一个通过n 的值的二维数组,基本上我正在尝试构造 n*n 数组并希望将所有值分配为零。要做到这一点vector<vector<int> > ans(n, vector<int>(n)); 我正在尝试这样,但是当检查它的大小时,它返回的 n 的值通过了。我期望数组大小为n*n
这样做是否正确?有没有更好的方法。
int n = 3;
vector<vector<int> > ans(n, vector<int>(n));//initialize
cout<<"size before :"<<ans.size()<<endl;
【问题讨论】:
-
如果您使用调试器的工具检查生成的对象,您会看到什么?
-
@SamVarshavchik 我尝试了打印向量我得到了 9 个零值
for(int i=0; i<ans.size(); i++) { for(int j=0; j<ans[i].size(); j++) { cout<<ans[i][j]<<endl; } } -
@SamVarshavchik 所以我对向量大小 n*n 的假设是错误的.. 明白了
-
是什么让你相信这是错误的?您希望得到一个 3x3 数组。那是九个值。您的输出显示九个值。相反,您希望看到什么?
-
它类似于指向数组的指针数组并且有相同的问题/优点
标签: c++ vector multidimensional-array