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

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中弹出
对于栈来说,每次弹出的是最后被压入的元素
对于队列,每次弹出的是最先被压入的元素

猜你喜欢

转载自blog.csdn.net/weixin_45720193/article/details/127577044