动态使用嵌套向量的方阵分配
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);
}
}
请注意,对于每一行(外循环),我们首先为该行推送一个空向量,然后推回该新向量。
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);
}
}
请注意,对于每一行(外循环),我们首先为该行推送一个空向量,然后推回该新向量。