vector相当于动态数组,可以从尾部快速的插入和删除元素。支持随机访问。
如果初始分配的空间不够,当超过空间大小时会重新分配更大的空间(通常按照两倍大小扩展),此时需要进行大量的元素复制,从而增加了性能开销。
1、定义vector向量的几种方式
vector<int> v1; //基本
vector<int> v2(10); //指定向量v2的初始大小为10个int元素,默认初始化为0
vector<double> v3(10,3.14)//指定v3的10个初始元素的初值为3.14
vector<int> v4(a,a+5) //用数组a[0]..a[4]共5个元素初始化v4
2、插入元素
push_back(); //在vector的尾部添加一个元素
insert(); //该函数将元素插入到迭代器指定元素之前;两个参数,一个是位置iterator和待插入元素;
pop_back(); //删除vector的尾部元素
3、访问元素
v1[0] //通过下表访问
at() //返回指定位置的元素
front()//返回vector的第一个元素
back() //返回vector的最后一个元素
4、修改
v1[x] = n //通过下标访问进行修改
assign() //给vector中的元素赋值
5、交换
swap(value1,value2)
6、反转
reverse(v.begin(),v.end())
7、删除
iterator erase(iterator position);//单个
iterator erase(iterator first, iterator last);//区间
Others
size(); //当前vector中元素实际个数
empty(); //判断vector是否为空
erase(); //删除某个iterator or iterator区间指定的元素。
clear(); //
//迭代
begin();
end();
rbegin();
rend();
参考资料