头文件:
#include<vector>
using namespace std;
一维向量
(1)向量的声明及初始化
vector<int> a; //声明一个int型向量a
vector<int> a(10); //声明一个初始大小为10的向量
vector<int> a(10, 1); //声明一个初始大小为10且初始值都为1的向量
vector<int> b(a); //声明并用向量a初始化向量b
vector<int> b(a.begin(), a.begin()+3); //将a向量中从第0个到第2个(共3个)作为向量b的初始值
除此之外, 还可以直接使用数组来初始化向量:
int n[] = {1, 2, 3, 4, 5};
vector<int> a(n, n+5); //将数组n的前5个元素作为向量a的初值
vector<int> a(&n[1], &n[4]); //将n[1] - n[4]范围内的元素作为向量a的初值
(2)元素的输入及访问
vector<int> a(10); //大小为10的向量a
cin >> a[2];
for(int i = 0; i < a.size(); ++i)
cout << a[i] << ' ';
(3)向量的基本操作:
vector<int> a, b;
int num = a.size(); //获取向量中的元素个数
if(a.empty()) //判断向量是否为空
cout << "a为空" << endl;
a = b ; //将b向量复制到a向量中
a.clear() //清空向量中的元素
(4)vector之间的比较:
保持 ==、!=、>、>=、<、<= 的惯有含义 ;
如: a == b ; //a向量与b向量比较, 相等则返回1
(5)插入 - insert
vector<int> a(3, 0) ;
a.insert(a.begin(), 1000); //在向量a的最前面插入1个1000,所以size增加1.
a.insert(a.begin(), 3, 1000) ; //在向量a的最前面插入3个1000,所以size增加3.
vector<int> a(2, 0);
vector<int> b(3, 1);
b.insert(b.begin(), a.begin(), a.end()); //将a.begin(), a.end()之间的全部元素插入到b.begin()前,所以向量b的size增加a的size.
(6)删除 - erase
b.erase(b.begin()) ; //将起始位置的元素删除
b.erase(b.begin(), b.begin()+3) ; //将(b.begin(), b.begin()+3)之间的元素删除
(7)交换 - swap
b.swap(a) ; //a向量与b向量进行交换
二维向量
vector<vector<int> > b(10, vector<int>(5)); //创建一个10*5的int型二维向量
cin >> b[1][1];
for(int i = 0; i < b.size(); ++i){ // 行向量 的大小
for(int j = 0; j < b[i].size(); j++) //获取向量中具体每个向量的大小
cout << b[i][j] << " ";
cout << endl;
}