这里大多阐述一下功能和用法以及我在使用时的一些问题。
一、添加元素
void push_back(const T& x);
iterator insert(iterator it,const T& x);//向iterator指向的元素的前一位插入x
iterator insert(iterator it,int n,const T& x);//向iterator指向的元素的前面插入n个相同的元素x
iterator insert(iterator it,const iterator first,const iterator end);//向iterator指向的元素的前面插入同类型迭代器所指的[first,end)之间的数据。
二、删除元素
iterator erase(iterator it);//删除it所指向的元素并指向下一个元素。
iterator erase(iterator first,iterator end);//删除[first,end)之间的元素,并指向end。这里注意两点第一是删除区间,看清楚一个[,一个)。基本上所有区间相关的操作都是这样。还有一个就是最后返回的迭代器指向被删除元素的下一个元素。
void pop_back();//删除向量中的最后一个元素
void clear();//清空vector
这里强调一点问题,就是使用迭代器删除时千万注意指针的管理,不要产生野指针。
三、遍历函数
reference at(int pos);//返回pos位置的元素引用
当然也可以直接用索引访问。
reference front();//返回首元素的引用
reference back();//返回尾元素的引用
iterator begin();//返回vector头指针,指向第一个元素
iterator end();//返回vector尾指针,指向最后一个元素的下一个位置
当然还有反向迭代器,只是这里还没有接触过,所以暂时先不贴出来。
四、其他函数
bool empty();//判断vector是否为空
int size();//返回vector中元素的个数
int capacity();//返回向量中所能容纳的最大元素值
int max_size();//返回向量中最大可允许的元素数
void swap(vector& v);//交换两个同类型向量的数据
void assign(int n,const T& x);//设置vector中的第n个元素为x
void assign(iterator first,iterator end);//设置[first,end)中的元素为当前vector中的元素