stl vector的使用
向量(vector):是一个顺序容器(Sequence Container),它能够存放各种类型的对象。可以简单的认为,向量是一个能够存放任意类型的动态数组(元素个数可变)。
vector的插入和删除不支持在任意位置O(1)插入,所以为了保证vector的效率,一般增删在末尾进行;
头文件
#include<vector>
变量定义
vector<int> a;//定义一个int的向量。
主要方法(函数)
push_back(元素)
增加一个元素到向量后面
Insert(位置,元素)
插入元素到向量的指定位置
Insert(位置,个数n,元素)
插入n个相同的元素到指定位置
Insert(位置,向量头指针first,尾指针end)
将另一个向量从first开始到end结束(不包括end)之间的内容插入该向量的指定位置
erase(位置)
删除指定位置的元素
pop_back()
弹出(删除)向量的最后一个元素
clear()
清除向量所有元素,size()变为0
运算符[i]
取向量下标为i的元素
front()
取向量第一个元素
back()
取向量最后一个元素
begin()
返回向量头指针(迭代器),指向第一个元素
end()
返回向量尾指针,指向向量最后一个元素的下一个位置
rbegin()
反向迭代器,指向最后一个元素
rend()
反向迭代器,指向第一个元素之前的位置
size()
返回向量中实际元素的个数
resize(大小)
重新设定向量的大小,也就是可以保存元素的个数
max_size()
得到Vector最大可以是多大
empty()
判断向量是否为空,等价于size()为0
swap()
交换两个同类型向量的数据
重载运算符
operator[]
operator==
operator!=
operator<
operator<=
operator>
operator>=
实例
二分插入排序代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
vector <int> a;
int n;
cin>>n;
for (int i=1;i<=n;i++)
{
int x;
cin>>x;
a.insert(lower_bound(a.begin(),a.end(),x),x);
}
vector<int>::iterator it;
for (it=a.begin();it!=a.end();it++)
{
cout<<*it<<" ";
}
return 0;
}