⼆维vector数组初始化⽅法
在⽤devcpp编译程序时发现,⼆维vector数组如果只定义的话,不指定元素个数也不进⾏初始化的时候会导致编译出错。
通常情况下,可以只提供vector对象容纳的元素数量⽽略去初始值。此时库会创建⼀个值初始化的元素初值,并把它赋给容器中的所有元素。这个初值由vector对象中元素的类型决定。
⼆维数组初始化⽅法⽬前有以下两种:
第⼀种初始化⽅法(以元素类型为int为例)
初始化为1:
vector<vector<int>>vec(row, vector<int>(col,1));
第⼆种初始化⽅法
初始化为1:
vector<vector<int>> vec;
for(int i =0; i < vec.size(); i++){
vec[i].resize(col);
}
for(int i =0; i < row; i++){
for(int j =0; j < col; j++){
vec[i][j]=1;
}
定义数组初始化
}
完整程序
#include<iostream>
#include<vector>
using namespace std;
void print(const vector<vector<int>> vec)
{
for(int i =0; i < vec.size(); i++){
for(int j =0; j < vec[0].size(); j++){
cout<<vec[i][j]<<"\t";
if(j == vec[0].size()-1)
cout<<endl;
}
}
}
int main()
{
int row =9;
int col =9;
//vector<vector<int>> vec(row, vector<int> (col,1));
vector<vector<int>> vec;
for(int i =0; i < vec.size(); i++){
vec[i].resize(col);
}
for(int i =0; i < row; i++){
for(int j =0; j < col; j++){
vec[i][j]=2;
}
}
print(vec);
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。