【STL】顺序容器的适配器(stack、queue、priority_queue)

14 篇文章 0 订阅

14天阅读挑战赛

前言

由于本文涉及内容比较多,为了尽可能的讲详细些,会把各种例子附上,所以代码样例会比较多,也为了更好的布局,本系列将分开讲解,并且前期为了更加贴合实战需求,暂时只对一些常用的STL容器和基本功能进行讲解。

为了使每篇文章具有一定的独立性,后续的文章大多数会将之前文章涉及的知识点中提取,并且在后续会将相应的例子补上。

本文STL系列知识参考《C++语言程序涉及(第5版)》

STL指南

顺序容器的适配器(stack、queue、priority_queue)

S是一种容器适配器类型,设s1,s2是S的两个实例,t是T类型的一个实例

注意事项

适配器不支持迭代器,因为它们不允许对任意元素进行访问

对于栈来说,只有栈顶元素是可以访问的

对于队列来说,只有队头和队尾的元素是可以访问的

stack

适配器共性

1.s1 op s2

op可以是==,!=,<,<=,>,>=它会对两个适配器之间的元素按字典序进行比较

2.s.size()

返回s的元素个数

3.s.empty()

返回s是否为空

4.s.push(t)

将元素t压入到s中

5.s.pop()

将一个元素从s中弹出
对于栈来说,每次弹出的是最后被压入的元素
对于队列,每次弹出的是最先被压入的元素

特有函数

1.s.top()

返回栈顶元素的引用

queue

适配器共性

1.s1 op s2

op可以是==,!=,<,<=,>,>=它会对两个适配器之间的元素按字典序进行比较

2.s.size()

返回s的元素个数

3.s.empty()

返回s是否为空

4.s.push(t)

将元素t压入到s中

5.s.pop()

将一个元素从s中弹出
对于栈来说,每次弹出的是最后被压入的元素
对于队列,每次弹出的是最先被压入的元素

特有函数

1.s.front()

返回队头元素的引用

2.s.back()

返回队尾元素的引用

priority_queue

弹出顺序与压入顺序无关,每次弹出的总是容器中最“大”的那个元素

并且没有比较运算符

当容器时类、结构体这样的复合数据类型时,“<”运算符必须有定义(即需要重载运算符),优先队列在默认情况下根据“<”运算符决定元素大小

特有函数

1.s.top()

返回栈顶元素的引用

2.s.size()

返回s的元素个数

3.s.empty()

返回s是否为空

4.s.push(t)

将元素t压入到s中

5.s.pop()

将一个元素从s中弹出
对于栈来说,每次弹出的是最后被压入的元素
对于队列,每次弹出的是最先被压入的元素

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

LenckCuak

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

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

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

打赏作者

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

抵扣说明:

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

余额充值