STL 中的 stack 和 queue

前言

C++标准库是有多个版本的,三个最为普遍的STL版本如下:

  1. HP STL ,其他版本的C++ STL,一般是以HP STL为蓝本实现出来的,HP STL是C++ STL的第一个实现版本,而且开放源代码。
  2. P.J.Plauger STL 由P.J.Plauger参照HP STL实现出来的,被Visual C++编译器所采用,不是开源的。
  3. SGI STL 由Silicon Graphics Computer Systems公司参照HP STL实现,被Linux的C++编译器GCC所采用,SGI STL是开源软件,源码可读性甚高。

container adapter(容器适配器)

栈和队列都是被称作为container adapter而不是被称作container,这是因为栈是以底层容器完成其所有的工作,对外提供统一的接口,底层容器是可插拔的(也就是说我们可以控制使用哪种容器来实现栈的功能)。所以STL中栈往往不被归类为容器,而被归类为container adapter(容器适配器)。
我们常用的SGI STL,如果没有指定底层实现的话,默认是以deque为缺省情况下栈的低层结构,如果要自己指定底层的实现方法如下:

std::stack<int, std::vector<int> > stackofvector;  // 使用vector为底层容器的栈

队列底层指定为list的方法为:

std::queue<int, std::list<int>> queueoflist; // 定义以list为底层容器的队列

stack的方法

push(x) 将x加入栈中,即入栈操作
 
pop() 出栈操作(删除栈顶),只是出栈,没有返回值
 
top() 返回第一个元素(栈顶元素)
 
size() 返回栈中的元素个数
 
empty() 当栈为空时,返回 true

queue的方法

与stack不同的就是取队头和队尾数据分别是 front() 和 back()

push(x) 将x压入队列的末端
 
pop() 弹出队列的第一个元素(队顶元素),注意此函数并不返回任何值
 
front() 返回第一个元素(队顶元素)
 
back() 返回最后被压入的元素(队尾元素)
 
empty() 当队列为空时,返回true
 
size() 返回队列的长度

持续更新中,欢迎关注。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

强大的RGG

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值