概述
栈:stack
#include <stack>
stack<int> s;
成员函数:
//判空求规模
s.empty();
s.size();
//数据访问
s.top();
//数据增删
s.push();
s.pop();
队列:queue
#include <queue>
queue<int> q;
成员函数:
//判空求规模
q.empty();
q.size();
//数据访问
q.front();
q.back();
//数据增减
q.push();
q.pop();
堆:priority_queue
#include<queue>
priority_queue<int> H;
//大根堆
priority_queue<int,vector<int>,greater<int> > h;
//小根堆,最后的两个“>”之间要有空格,vector不用单另开头文件。至于greater是什么意思,我并不知道……
成员函数:与栈完同
//判空求规模
h.empty();
h.size();
//数据访问
h.top();
//数据增删
h.push();
h.pop();
**注:若数据元素为结构体,则需重载<运算符。
双端队列:deque
#include <deque>
deque<int> d;
成员函数:
d.push_front(); //vector无
d.push_back();
d.pop_front();//vector无
d.pop_back();
//其他与vector几乎一致(就是以vector为原型创造的)
//vector无法在front处进行pop与push修改
#include <vector>
vector<int> c;
成员函数:
//判空判规模
c.empty();
//判断容器是否为空,若为空返回true,否则返回false
c.size();
//返回当前容器中实际存放元素的个数
//数据访问
c.at(index);
//返回指定index位置处的元素
c.front();
//返回容器最开始单元数据的引用
c.back();
//返回容器最后一个数据的引用
c.begin();
//返回指向容器最开始位置数据的指针
c.end();
//返回指向容器最后一个数据单元的指针+1
//数据修改
c.push_back(elem);
//在容器后端加入新元素
c.pop_back();
//删除容器最后位置处的元素
c.erase(p);
//删除指针p指向位置的数据,返回下指向下一个数据位置的指针(迭代器)
c.erase(begin,end); //删除begin,end区间的数据,返回指向下一个数据位置的指针(迭代器)
c.clear();
//清除所有数据
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)的数据,无返回值
//不常用
c.resize();
//重新设置vector的容量
c.max_size();
//返回容器的最大容量
c.reserve();
//同c.resize()
c.capacity();
//同c.size()
c.rbegin();
//将vector反转后的开始指针返回(其实就是原来的end-1)
c.rend();
//将vector反转后的结束指针返回(其实就是原来的begin-1)
最后
以上就是精明豆芽为你收集整理的STL常用容器模板的全部内容,希望文章能够帮你解决STL常用容器模板所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复