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

Square matrix allocation using nested vectors dynamically

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);
    }

帮助我在向量的帮助下初始化二维数组

如果你有一个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);
}

如果您在创建向量时保留 space,则可以使用 [][]

看起来你真的想要这样的东西:

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);
    }
}

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