vector操作二维数组的使用方法总结
1. 初始化一个二维数组
一般如果已知数组的行数,那么我们可以声明变量的同时申请内存:
vector<vector <int> > a(3);//初始化的是3*3的矩阵
注意我们所申请的矩阵行数和列数默认相等的,如果我们需要行数和列数不相等的二维数组,那么我们可以对每一行所包含的元素个数加以限制;
for(int i=0;i<a.size();i++)//利用resize函数将每一行的元素个数设置为5个,即5列
a[i].resize(5);
此时我们得到的就是一个3行5列的二维数组;还有一点需要注意的是,如果我们采用
size函数来得到数组规模,那么我们所得到的结果是矩阵的行数,如果需要得到列数可以使用a[0].size()
vector<vector <int> > a(3);//初始化的是3*3的矩阵
for(int i=0;i<a.size();i++)//利用resize函数将每一行的元素个数设置为5个,即5列
a[i].resize(5);
cout<<a.size()<<endl;//打印的是vector的行数
除上述初始化行列数不同的二维数组之外,我们也可以直接定义,结果也是3行5列的二维数组
vector<vector<int> > Array(3, vector<int>(5));
cout<<Array[0].size()<<endl;
2.二维数组的增添
2.1 添加一行
//插入一行数组:将in_row数组插入到第2行!
vector<int> in_row(5,6);//初始化一个数组,包含5个元素并且全为6
a.insert(a.begin()+2,in_row);
cout<<"插入后:"<<endl;
show(a);
2.2 插入一列
vector<int> in_line(5,9);
for(int i=0;i<a.size();i++)
{
a[i].insert(a[i].begin()+2,9);
}
cout<<"插入后:"<<endl;
show(a);
3. 二维数组的删除
3.1 删除一行
a.erase(a.begin()+2,a.begin()+3);
cout<<"删除后:"<<endl;
show(a);
3.2 删除一列
//删除a的第二列
for(int i=0;i<a.size();i++)
{
a[i].erase(a[i].begin()+2,a[i].begin()+3);
}
cout<<"删除后:"<<endl;
show(a);