如何动态创建二维向量

How to dynamically create a 2d vector

vector< vector<int>> arr(n); arr 是一个二维向量。我想从用户那里获取输入“列”,然后是元素。

    for(int i=0;i<n;i++)
    {
        int cols; cin>>cols;
        
        //Statements
    }

如何在 for 循环 中创建 cols 大小的向量?

向量<向量>a(M,向量(N)); 只需在之前声明列,然后将值插入行。 或者你可以使用向量数组。 矢量 v[5];

首先只取列大小。然后创建向量,然后获取输入;

int col,num;
cin >> col;

vector<vector<int>> arr(n,vector<int>(col));   
// this creates a vector of size n, whose elements are in turn vectors of size col

for(int i=0;i<n;i++)
{
    for(int j=0;i<col;j++)
    {
        cin >> num;
        arr[i][j]=num;
    }
}

我终于做到了。

#include<bits/stdc++.h>
using namespace std;
int main()
{
    //rows=5 and columns are dynamically initialized
    vector<vector<int>> v(5);
    int cols;
    for(int i=0;i<5;++i)
    {
        cout<<"Enter column count for row : "<<i+1<<"\n";
        cin>>cols;
        v[i]=vector<int>(cols);
        cout<<"Enter Data";
        for(int j=0;j<cols;++j)
            cin>>v[i][j];
    }
    cout<<"your data was :-\n";
    for(int i=0;i<5;++i)
    {
        for(int j=0;j<v[i].size();++j)
            cout<<v[i][j]<<"  ";
        cout<<"\n";
    }
}