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

时间:2017-10-16 18:00:55

标签: c++ arrays vector 2d

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数组

2 个答案:

答案 0 :(得分:1)

如果你有notifyDataSetChanged(),这不是二维数组,而是矢量矢量。

您需要创建一个行向量,然后将行向量推入外部向量:

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

答案 1 :(得分:0)

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

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

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