vector 常用操作
#include <iostream>
#include <vector>
int main()
{
//1.定义和初始化
vector<int> vec1; //默认初始化,vec1为空
vector<int> vec2(vec1); //使用vec1初始化vec2
vector<int> vec3(vec1.begin(),vec1.end());//使用vec1初始化vec2
vector<int> vec4(10); //10个值为0的元素
vector<int> vec5(10,4); //10个值为4的元素
//2.常用操作方法
//2.1 添加函数
vec1.push_back(100); // 尾部添加元素
vec1.insert(vec1.end(),5,3); // 从vec1.back位置插入5个值为3的元素
//2.2 删除函数
vec1.pop_back(); // 删除末尾元素
vec1.erase(vec1.begin(),vec1.begin()+2); // 删除vec1[0]-vec1[2]之间的元素,不包括vec1[2]其他元素前移
vec1.clear(); // 清空元素,元素在内存中并未消失,通常使用swap()来清空
vector<int>().swap(V); // 利用swap函数和临时对象交换内存,交换以后,临时对象消失,释放内存。
// 必须是同类型的 vector
// 且只有存储对象时才有效
//2.3 遍历函数
vec1[0]; //取得第一个元素
vec1.at(int pos); //返回pos位置元素的引用
vec1.front(); //返回首元素的引用
vec1.back(); //返回尾元素的引用
vector<int>::iterator begin= vec1.begin(); //返回向量头指针,指向第一个元素
vector<int>::iterator end= vec1.end(); //返回向量尾指针,指向向量最后一个元素的下一个位置
vector<int>::iterator rbegin= vec1.rbegin(); //反向迭代器,指向最后一个元素
vector<int>::iterator rend= vec1.rend(); //反向迭代器,指向第一个元素之前的位置
//2.4 判断函数
bool isEmpty = vec1.empty(); //判断是否为空
//2.5 大小函数
int size = vec1.size(); //元素个数
vec1.capacity(); //返回容器当前能够容纳的元素个数
vec1.max_size(); //返回容器最大的可能存储的元素个数
//2.6 改动函数
vec1.assign(int n,const T& x); //赋n个值为x的元素到vec1中,这会清除掉vec1中以前的内容。
vec1.assign(const_iterator first,const_iterator last); //当前向量中[first,last)中元素设置成迭代器所指向量的元素,这会清除掉vec1中以前的内容。
}