说明:vector是C++中一个的容器类,它用于存放类型相同的元素,利用成员函数及相关函数可以方便的对元素进行增加或删除,排序或逆序等等。一个 vector 的容量(capacity)永远大于或等于其大小(size),一旦容量等于大小,便是满载,下次再有新增元素,整个 vector 容器就得重新申请一块更大的连续容量空间(一般是两倍原来容量大小)来存储所有的元素(包括原有的和新增的),然后原来的空间被释放。
注意:vector是一个动态数组,可以动态增加数组的大小(size)。所谓动态增加大小,并不是在原空间之后续接新空间(因为无法保证原空间之后尚有可配置的空间),而是一块更大的内存空间,然后将原数据拷贝到新空间,并释放原空间。因此,对 vector 的任何操作,一旦引起空间的重新配置,原空间的地址就变了。
1.包含的头文件:#include<vector>
2.构造函数
1 vector<T> v; //默认构造函数,T是数据类型 2 vector<T> v1(v.begin(),v.end()); //将容器v参数区间的元素拷贝到容器v1 3 vector<T> v2(n,elem); //构造函数将n个elem元素赋给v2 4 vector<T> v3(v1); //拷贝构造函数 5 vector<int> v4{1,2,3,4,5}; //指定元素初始化容器 6//用数组初始化一个vector容器 7 int arr[] = {1,2,3,4}; 8 vector<int> v4(arr,arr+sizeof(arr)/sizeof(int));
3.常用赋值函数
1 v.assign(v1.begin(),v1.end()); //将v1固定区间内的元素拷贝赋值给v 2 v.assign(n,elem); //将n个elem元素拷贝赋值给v 3 v = v1; //将v1赋给v(重载了等号操作符) 4 v.swap(v1); //将两个容器的元素进行交换
4.size操作
1 v1.size(); //返回v1中的元素个数 2 v1.empty(); //判断v1是否为空
3 v1.resize(num,elem);
//重新指定容器的长度为num,若容器变长,则以elem填充新位置,反之末尾元素被删除(第二个参数有默认值)
4 v1.capacity(); //容器的容量 5 v1.reserve(len); //容器预留len个元素容量,预留位置不初始化,元素不可访问,size为0
5.数据存取
1 v1.at(i); //返回索引i所指的数据,越界抛异常 2 v1[i]; //返回索引i所指的数据,越界报错 3 v1.front(); //返回容器的第一个数据 4 v1.back(); //返回容器的最后一个数据
6.插入和删除
1 v1.insert(pos,count,ele); //迭代器指向位置pos插入conut个元素ele 2 v1.push_back(); //尾部插入元素ele 3 v1.pop_back(); //删除尾部元素 4 v1.erase(pos1,pos2); //删除迭代器pos1到pos2之间的元素
5 v1.erase(pos); //删除迭代器指向的元素
6 v1.clear(); //删除容器中的所有元素