/*vector
vector(向量):
通俗解释:一个动态数组(随意更改大小),在不知道规模的输入下常常申请的一种数据结构(类)
使用方法:
头文件#include <vector>
申请空间:vector <int> a;(一维数组)
vector<vector<int>> a;(二维数组) 或者:vector <int*> v1;
表示方法:a[0],a[1];//(有缺点)
常用函数:
1.push_back 在数组的最后添加一个数据
2.pop_back 去掉数组的最后一个数据
3.at 得到编号位置的数据
4.begin 得到数组头的指针
5.end 得到数组的最后一个单元+1的指针
6.front 得到数组头的引用
7.back 得到数组的最后一个单元的引用
8.max_size 得到vector的大小
9.capacity 当前vector分配的大小
10.size 当前使用数据的大小
11.resize 改变当前使用数据的大小,如果它比当前使用的大,者填充默认值
12.reserve 改变当前vecotr所分配空间的大小
13.erase 删除指针指向的数据项
14.clear 清空当前的vector
15.rbegin 将vector反转后的开始指针返回(其实就是原来的end-1)
16.rend 将vector反转构的结束指针返回(其实就是原来的begin-1)
17.empty 判断vector是否为空
18.swap 与另一个vector交换数据
使用用法:
c.clear(void) 移除容器中所有数据。
bool a = c.empty() 判断容器是否为空。
c.erase(pos) 删除pos位置的数据
c.erase(beg,end) 删除[beg,end)区间的数据
c.front() 传回第一个数据。
c.insert(pos,elem) 在pos位置插入一个elem拷贝
c.pop_back() 删除最后一个数据。
c.push_back(elem) 在尾部加入一个数据。
c.resize(num) 重新设置该容器的大小
int k = c.size() 容器中实际数据的个数。
c.begin() 返回指向容器第一个元素的迭代器
c.end() 返回指向容器最后一个元素的迭代器
c.at(idx); 返回索引idx所指的数据,如果idx越界,抛出out_of_range。
c[idx]; 返回索引idx所指的数据,如果idx越界,不抛出异常,直接出错。
reverse(vec.begin(),vec.end());将元素翻转,即逆序排列!
*/