STL源码剖析学习七:stack和queue

stack是一种先进后出的数据结构,只有一个出口。
允许新增、删除、获取最顶端的元素,没有任何办法可以存取其他元素,不允许有遍历行为。

缺省情况下用deque作为stack的底部结构,将其接口改变,封住一端就可以形成stack

接口:
empty()
size()
top()
push()
pop()
operator==
operator<

由于stack以底部容器完成所有工作,成为adapter(配接器),不算做容器,叫做容器配接器
stack不需要遍历,因此没有迭代器

把list作为stack的底层容器
stack<int,list<int>> istack;
其余操作相同。

queue是一种先进先出的数据结构,有两个出口,最底端可以加入,最顶端可以取出外,没有任何其他方

法可以获得其他元素。不允许有遍历行为。也不提供迭代器

接口:
empty()
size()
front()
back()
push()
pop()
operator==
operator<

同样用deque作为queue的底部实现,同样是容器配接器。
也可以用其他容器作为queue的底部实现
queue<int, list<int>> iqueue

转载于:https://www.cnblogs.com/w0w0/archive/2012/04/22/2464721.html

STL源码剖析学习七:stack和queue相关推荐

  1. STL源码剖析学习二:空间配置器(allocator)

    STL源码剖析学习二:空间配置器(allocator) 标准接口: vlaue_type pointer const_pointer reference const_reference size_ty ...

  2. STL源码剖析学习之increment、decrement、dereference实现源码

    //STL之increment.decrement.dereference实现源码 //学习目的:STL实现原理.操作符(++i,i++,*等操作符的重载) //increment/dereferen ...

  3. STL源码剖析—学习记录

    提示:建议看完侯捷老师的STL标准库视频后,再看这本书,会看的下去一些!本人对其中重点内容和概念进行了提取,希望对一起前行的人有些许帮助,码字不易,欢迎点个赞呦! 文章目录 一.可能令你困惑的C++语 ...

  4. STL源码剖析 第七章 仿函数(函数对象)

    函数对象:具有函数性质的对象 使得用户像使用函数一样使用它 一般函数提供两个版本,第一个版本使用operator < ;第二版本需要用户 指定某种操作 第二版本就是设计一个函数,将函数指针作为算 ...

  5. STL源码剖析学习十四:算法之set相关算法

    STL中定义的set要求元素不得重复且已经排序 set算法要求的都是有序区间,但元素可以重复出现 另外提供的hash版本的set因为其元素无序,因此不能作为set函数的参数 set算法前4个参数分别表 ...

  6. 《STL源码剖析》学习--6章--_rotate算法分析

     最近在看侯捷的<STL源码剖析>,其中有许多不太明白之处,后经分析或查找资料有了些理解,现记录一下. <STL源码剖析>学习--6章--random access ite ...

  7. STL源码剖析 stack 栈 概述->(使用deque双端队列 / list链表)作为stack的底层容器

    Stack是一种先进后出的数据结构,他只有一个出口 stack允许 新增元素.移除元素.取得最顶端的元素,但是无法获得stack的内部数据,因此satck没有遍历行为 Stack定义的完整列表 (双端 ...

  8. 《STL源码剖析》学习-- 1.9-- 可能令你困惑的C++语法1

    最近在看侯捷的<STL源码剖析>,虽然感觉自己c++看得比较深一点,还是感觉还多东西不是那么明白,这里将一些细小的东西或者概念记录一下. 有些东西是根据<C++编程思想>理解的 ...

  9. 《STL源码剖析》学习--6章--power算法分析

    最近在看侯捷的<STL源码剖析>,其中有许多不太明白之处,后经分析或查找资料有了些理解,现记录一下. 6章--power算法分析 书本中的算法如下所示: template <clas ...

最新文章

  1. MATLAB【九】————ICP算法实现
  2. python使用numpy的np.float_power函数计算numpy数组中每个数值的指定幂次(例如平方、立方)、np.power函数默认返回整数格式、np.float_power函数返回浮点数
  3. mybatis mapper xml文件的导入方式和查询方式
  4. [数据恢复答疑]有关还原精灵保护系统的数据恢复
  5. swift 原生给h5发消息_Swift-WKWebView与JavaScript的细节,H5页面跳转原生界面
  6. first() mysql_EF6配合MySQL或MSSQL(CodeFirst模式)配置指引
  7. 规划和实施Exchange 2013备份
  8. Anbox之源码编译(一)
  9. 23-新建maven 项目
  10. Netty的并发编程实践2:volatile的正确使用
  11. vb查询mysql数据库实例_初识vb数据库开发之实例5(数据查询)
  12. C语言指针详解(经典,非常详细)
  13. 《线性代数应该这样学》学习笔记
  14. 被炫龙DD3plus的insyde h20 bios整天了一整天分享分享解决问题经验
  15. 数星星 Stars 题解
  16. 电视上玩android游戏,如何用u盘下载游戏在android系统电视上玩?
  17. php日志写什么内容,Monolog-PHP日志类库介绍
  18. bearer token头_BearerToken之JWT的介绍
  19. 高交会文思海辉三项成果斩获优秀产品奖
  20. go源码阅读——type.go

热门文章

  1. 【深度学习】详解集成学习的投票和Stacking机制
  2. 鸿蒙10.1升级机型,鸿蒙系统的前奏,华为EMUI10.1从底层掏空安卓,20款老机型升级...
  3. 一般能达到多少_实话实说:一般家庭存款有多少?你又达到标准了吗?
  4. 判断正则 shell_【US分享】Shell中的括号
  5. 企业网站关键字要学会注重重点优化!
  6. 实现if_如何解决开发中 if...esle 代码过多的问题,强烈推荐!
  7. oracle数据库多表嵌套,sql – 在oracle中更新多个嵌套表中的多个记录
  8. numpy python2_python-numpy(2)
  9. 老电脑安装matlab 2018卡不卡,软件装C盘会变卡?Windows系统要怎么用才不卡?
  10. 人工智能到底是啥_人工智能的本质究竟是什么?