C++学习之STL(一)vector
阅读原文时间:2023年07月08日阅读:2

前言

C++ Primer Plus读书笔记(三)复合类型 中已经简单介绍过vector是什么,这个系列主要是介绍STL特性。

声明

vector<ElemType> c;   //创建一个空的vector
vector<ElemType> c1(c2); //创建一个vector c1,并用c2去初始化c1
vector<ElemType> c(n) ; //创建一个含有n个ElemType类型数据的vector;
vector<ElemType> c(n,elem); //创建一个含有n个ElemType类型数据的vector,并全部初始化为elem;
c.~vector<ElemType>(); //销毁所有数据,释放资源;

方法

c.push_back(elem);                //在容器最后位置添加一个元素elem
c.pop_back();                     //删除容器最后位置处的元素
c.at(index);                      //返回指定index位置处的元素
c.begin();                        //返回指向容器最开始位置数据的指针
c.end();                          //返回指向容器最后一个数据单元的指针+1
c.front();                        //返回容器最开始单元数据的引用
c.back();                         //返回容器最后一个数据的引用
c.max_size();                     //返回容器的最大容量
c.size();                         //返回当前容器中实际存放元素的个数
c.capacity();                     //同c.size()
c.resize();                       //重新设置vector的容量
c.reserve();                      //同c.resize()
c.erase(p);                       //删除指针p指向位置的数据,返回下指向下一个数据位置的指针(迭代器)
c.erase(begin,end)                //删除begin,end区间的数据,返回指向下一个数据位置的指针(迭代器)
c.clear();                        //清除所有数据
c.rbegin();                       //将vector反转后的开始指针返回(其实就是原来的end-1)
c.rend();                         //将vector反转后的结束指针返回(其实就是原来的begin-1)
c.empty();                        //判断容器是否为空,若为空返回true,否则返回false
c1.swap(c2);                      //交换两个容器中的数据
c.insert(p,elem);                 //在指针p指向的位置插入数据elem,返回指向elem位置的指针
c.insert(p,n,elem);               //在位置p插入n个elem数据,无返回值
c.insert(p,begin,end)             //在位置p插入在区间[begin,end)的数据,无返回值
std::reverse(c.begin(), c.end()); //反转c中元素顺序