之前我认为此代码适用于创建2D数组
vector<vector<int>> array;
int m=3,n=3;
array.resize(m);
for(int i=0;i<m;i++)
{
array[i].resize(n);
}
for(int i=0;i<m;i++)
{
for(int j=0;i<n;j++)
{
array[i][j] = i+j;
}
}
但事实证明这并不起作用,因为当我试图得到数值时,比如array [0] [1],这给出了0,但它应该给出1。
所以,我说只有一个原因,那就是它不是2D阵列。
如果代码是正确的并且我犯了错误,请告诉我错误,否则请建议我使用矢量制作2D数组的方法。
谢谢你
答案 0 :(得分:1)
vector< vector<int> > matrix(m,vector<int>(n));
for(int i=0;i<m;i++)
{
for(int j=0;i<n;j++)
matrix[i][j] = i+j;
}
答案 1 :(得分:1)
试试此代码
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
vector < vector<int> > array;
int m=3,n=3;
array.resize(m);
for(int i=0;i<m;i++)
{
array[i].resize(n);
}
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
array[i][j] = i+j;
}
}
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
cout<<array[i][j] ;
}
cout<<endl;
}
return 0;
}