作用:它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。
vector在C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。
-
常用方法:
-
尾部插入数字:vec.push_back(a);
-
使用下标访问元素,cout<<vec[0]<<endl;记住下标是从0开始的。
-
使用迭代器访问元素:
vector<int>::iterator it;
for(it=vec.begin();it!=vec.end();it++)
cout<<*it<<endl;
-
插入元素:vec.insert(vec.begin()+i,a);在第i+1个元素前面插入a;
-
删除元素:vec.erase(vec.begin()+2);删除第3个元素
-
vector的元素不仅仅可以是int,double,string,还可以是结构体,但是要注意:结构体要定义为全局的,否则会出错。
-
pop_back 去掉数组的最后一个数据
-
at 得到编号位置的数据
-
begin 得到数组头的指针
-
end 得到数组的最后一个单元+1的指针
-
front 得到数组头的引用
-
back 得到数组的最后一个单元的引用
-
max_size 得到vector最大可以是多大
-
capacity 当前vector分配的大小
-
size 当前使用数据的大小
-
resize 改变当前使用数据的大小,如果它比当前使用的大,者填充默认值
-
reserve 改变当前vecotr所分配空间的大小
-
clear 清空当前的vector
-
rbegin 将vector反转后的开始指针返回(其实就是原来的end-1)
-
rend 将vector反转构的结束指针返回(其实就是原来的begin-1)
-
empty 判断vector是否为空
-
swap 与另一个vector交换数据
使用vector需要注意以下几点:
1、如果你要表示的向量长度较长(需要为向量内部保存很多数),容易导致内存泄漏,而且效率会很低;
2、Vector作为函数的参数或者返回值时,需要注意它的写法:
double Distance(vector<int>&a, vector<int>&b) 其中的“&”绝对不能少!!!