C++学习之STL(一)vector
前言
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中元素顺序