定义
用来当长度可变的数组使用
vector<typename> name;//定义一个名为name的typename类型vector容器
vector<vector<typename> > name;
//定义一个名为name的typename类型vector容器的容器
//类似于二维数组,> >之间要加一个空格
访问
(1)直接通过下标访问(下标为 0~vi.size()-1 )
(2)通过迭代器 it 访问
迭代器的定义:(类似指针,*it 即为 it 指向的元素内容)
vector<typename>::iterator it;
/*注*/vi[i]==*(vi.begin()+i)
支持自加自减 it++/it–
不支持“ it < vi.end() ”的写法
for(vector<int>::iterator it = vi.begin(); it != vi.end();it++)//合法
for(vector<int>::iterator it = vi.begin(); it < vi.end();it++)//不合法
常用函数
添加和删除(在末尾),O(1)
vi.push_back(x); //在末尾添加元素x
vi.pop_back(); //删除末尾元素
返回长度,O(1)
vi.size(); //返回的是unsigned类型,可以%d
清空,O(n)
vi.clear(); //清空vi中所有元素
插入元素,O(N)
vi.insert(it,x); //在vi的it位置插入x
vi.insert(vi.begin() +a ,x);//在vi[a]插入x
删除,O(N)
vi.erase(it); //删除迭代器为it处的元素
vi.erase(vi.begin()+a,vi.begin()+b);//删除vi[a]~vi[b-1]的元素