如何使用矢量创建2D数组?

时间:2017-11-05 12:34:57

标签: c++ arrays vector

之前我认为此代码适用于创建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数组的方法。

谢谢你

2 个答案:

答案 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;
}