转自:
1、https://www.cnblogs.com/KyleDeng/p/9243666.html
2、https://blog.csdn.net/mr_sandman1994/article/details/80252559
变量声明
vector<vector<int> > 变量名;
添加行
vector<vector<int> > v2d;
for(int i=0;i<n;i++)
{
v2d.push_back(vector<int>());//往v2d里添加行
}
v2d.pop_back();//删除一行,由后向前。
vector<vector <int> > array(3);//定义了行数为3列数不定的二维数组
array.size()//返回二维数组的行数
array[0].size()//返回二维数组第一行的列数
遍历二维vector中的元素
int m=v2d.size();//行数不定所以要求出v2d的长度。
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
v2d[i][j]=0;
}
}//依次访问v2d内的元素
#include<bits/stdc++.h>
using namespace std;
vector<vector<int> > v2d;
int main()
{
for(int i=0;i<5;i++)
{
v2d.push_back(vector<int>());//不断往v2d里加行
}
for(int i=0;i<v2d.size();i++)//行
{
for(int j=0;j<5;j++)//添加5列
{
v2d[i].push_back(i*j);
}
}
v2d.pop_back();
for(int i=0;i<v2d.size();i++)
{
for(int j=0;j<5;j++)
{
cout<<v2d[i][j]<<" ";//使用下标访问
}
cout<<endl;
}
return 0;
}
二维向量的属性与一维向量相同
1>. a.size() //获取向量中的元素个数
2>. a.empty() //判断向量是否为空
3>. a.clear() //清空向量中的元素
4>. 复制
a = b ; //将b向量复制到a向量中
5>. 比较
保持 ==、!=、>、>=、<、<= 的惯有含义 ;
如: a == b ; //a向量与b向量比较, 相等则返回1
6>. 插入 - insert
①、 a.insert(a.begin(), 1000); //将1000插入到向量a的起始位置前
②、 a.insert(a.begin(), 3, 1000) ; //将1000分别插入到向量元素位置的0-2处(共3个元素)
③、 vector<int> a(5, 1) ;
vector<int> b(10) ;
b.insert(b.begin(), a.begin(), a.end()) ; //将a.begin(), a.end()之间的全部元素插入到b.begin()前
7>. 删除 - erase
①、 b.erase(b.begin()) ; //将起始位置的元素删除
②、 b.erase(b.begin(), b.begin()+3) ; //将(b.begin(), b.begin()+3)之间的元素删除
8>. 交换 - swap
b.swap(a) ; //a向量与b向量进行交换
9>. a.back(); //获取a向量最后一个元素
10>. a.front //获取a向量的第一个元素
11>. a.pop_back(); //删除a向量的最后一个元素
12>.a.capacity(); //返回a在内存中总共可以容纳的元素个数
13>.a.rezize(10); //将a的现有元素个数调至10个,多则删,少则补,其值随机
14>.a.rezize(10,2); //将a的现有元素个数调至10个,多则删,少则补,其值为2
//使用下面的函数需要包涵头文件
#include<algorithm>
(1)sort(a.begin(),a.end()); //对a中的从a.begin()(包括它)到a.end()(不包括它)的元素进行从小到大排列
(2)reverse(a.begin(),a.end()); //对a中的从a.begin()(包括它)到a.end()(不包括它)的元素倒置,但不排列,如a中元素为1,3,2,4,倒置后为4,2,3,1
(3)copy(a.begin(),a.end(),b.begin()+1); //把a中的从a.begin()(包括它)到a.end()(不包括它)的元素复制到b中,从b.begin()+1的位置(包括它)开始复制,覆盖掉原有元素
(4)find(a.begin(),a.end(),10); //在a中的从a.begin()(包括它)到a.end()(不包括它)的元素中查找10,若存在返回其在向量中的位置