数组是静态空间,vector容器可以动态扩展,增加长度
动态扩展并不是在原空间之后续接新空间,而是找到比原来更大的内存空间,将原数据拷贝到新空间,释放原空间
vector容器的迭代器是支持随机访问的迭代器
vector构造函数vector vector& operator=(const vector &v); //重载赋值运算符assign(v.begin(),v.end()); //将[v.begin(),v.end())区间中的元素赋值给本身assign(n,elem); //将n个elem赋值给本身
vector容量和大小
empty(); //判断容器是否为空,为空返回1,否则返回0capacity(); //返回容器的容量size(); //返回容器的大小,即容器中元素的个数resize(int num); //重新指定容器的长度为num,若容器变长,则以默认值0填充新位置,如果容器变短,则末尾超过容器长度的元素被删除resize(int num,int elem); //重新指定容器的长度为num,若容器变长,则以elem填充新位置,如果容器变短,则末尾超过容器长度的元素被删除
vector插入和删除
push_back(ele); //尾部插入元素elepop_back(); //删除最后一个元素insert(const_iterator pos,ele); //在迭代器指向的位置pos处插入一个元素eleinsert(const_iterator pos,int count,ele); //在迭代器指向的位置pos处插入count个元素eleerase(const_iterator pos); //删除迭代器指向的元素erase(const_iterator begin,const_iterator end); //删除迭代器从begin到end之间的元素clear(); //删除容器中所有元素
vector数据存取
at(int id); //返回索引id所指的数据operator[]; //返回[]内索引所指的数据front(); //返回容器中第一个元素back(); //返回容器中最后一个元素
vector互换容器
swap(v); //容器v和当前容器互换
实际用于收缩内存 reserve(int len); //容器预留len个元素长度,预留的位置并不初始化,同时也不可访问
功能:减少vector在动态扩容时的扩展次数void test()
{
vector
vector预留空间
void test()
{
vector



