1、vector是什么
vector我们常将其称作向量,是STL中实现的一个容器,其本质是一个动态数组
2、vector的初始化
仅指定长度 不具有初值
//定义具有10个整型元素的向量(尖括号为元素类型名,模板参数)
vector<int>a(10);
指定长度 且指定初值
//定义具有10个整型元素的向量,且给出的每个元素初值为1
vector<int>a(10,1);
使用另一个vector作为初值(拷贝构造)
//用向量b给向量a赋值,a的值完全等价于b的值
vector<int>a(b);
使用另一个vector的一部分作为初值
//将向量b中从0-2(共三个)的元素赋值给a,a的类型为int型
vector<int>a(b.begin(),b.begin+3);
使用普通数组或其一部分作为初值
//从数组中获得初值
int b[7]={1,2,3,4,5,6,7};
vector<int> a(b,b+7);
3、vector的常用内置函数
front()/back()函数——返回第一/最后一个元素
//返回a的最后一个元素
a.back();
//返回a的第一个元素
a.front();
assign()函数——赋值
//b为向量,将b的0-2个元素赋值给向量a(虽然是+3,但是左闭右开)
a.assign(b.begin(),b.begin()+3);
//a含有4个值为2的元素(类似于初始化种指定长度和初值的情况)
a.assign(4,2);
clear()函数——清空
//清空a中的元素
a.clear();
empty()函数——判断是否为空
//判断a是否为空,空则返回true,非空则返回false
a.empty();
pop_back()函数——删除最后一个元素
//删除a向量的最后一个元素
a.pop_back();
erase()函数——删除元素
//删除的元素从a.begin()+1算起(包括它)一直到a.begin()+3(不包括它)结束(左闭右开)
a.erase(a.begin()+1,a.begin()+3);
push_back()函数——在最后插入元素
//在a的最后一个向量后插入一个元素,其值为5
a.push_back(5);
insert()函数——插入元素
//在a的第一个元素(从第0个算起)位置插入数值5,
a.insert(a.begin()+1,5);
//在a的第一个元素(从第0个算起)位置插入3个数,其值都为5
a.insert(a.begin()+1,3,5);
//b为数组,在a的第一个元素(从第0个元素算起)的位置插入b的第三个元素到第5个元素(不包括b+6)
a.insert(a.begin()+1,b+3,b+6);
capacity()函数——容量
//返回a在内存中总共可以容纳的元素个数
a.capacity();
resize()函数——调整容量
//将a的现有元素个数调整至10个,多则删,少则补,其值随机
a.resize(10);
//将a的现有元素个数调整至10个,多则删,少则补,其值为2
a.resize(10,2);
//将a的容量扩充至100,
a.reserve(100);
swap()函数——交换元素(vector之间)
//b为向量,将a中的元素和b中的元素整体交换
a.swap(b);