使用嵌套向量动态分配方阵

Square matrix allocation using nested vectors dynamically

本文关键字:动态分配 方阵 向量 嵌套      更新时间:2023-10-16
int n=0,b;
cin>>n;
vector <vector<int>> a;
for (int i=0;i<n;i++)
    for(int j=0;j<n;j++){
       cin>>b;
        a[i][j].push_back(b);
    }

帮助我在向量的帮助下初始化 2D 数组

如果你

有一个vector<vector<int>>,这不是一个二维数组,而是一个向量的向量。

您需要创建一个行向量,

然后将行向量推送到外部向量中:

vector<vector<int> > a;  
int b;  
for (unsigned int row = 0; row < n; ++row)
{
  vector<int> new_row;
  for (unsigned int colunm = 0; column < n; ++column)
  {
    cin >> b;
    new_row.push_back(b);
  }
  a.push_back(new_row);
}

如果在创建矢量时预留空间,则可以使用[][]

看起来你实际上想要这样的东西:

vector <vector<int>> a;
for (int i=0;i<n;i++) {
    a.push_back(vector<int>());
    for(int j=0;j<n;j++){
       cin>>b;
        a.at(i).push_back(b);
    }
}

请注意,对于每一行(外循环),我们首先推送该行的空向量,然后推送回该新向量。