当前位置:   article > 正文

【C++ STL】容器适配器 Container adapter(stack & queue & priority_queue)

容器适配器

一、STL - stack

1.1 stack 的介绍
image-20220520170638655

文档介绍:stack - C++ Reference (cplusplus.com)

// T: 容器中存储的元素的类型
template <class T, class Container = deque<T> > class stack;
  • 1
  • 2
  1. stack 是一种「容器适配器」(container adapter),专门用在具有 LIFO (后进先出) 操作的上下文环境中,其中元素仅从容器的一端插入和提取。

  2. stack 是作为容器适配器被实现的,「容器适配器」即是「对特定容器类封装」作为其底层的容器,并提供一组特定的成员函数来访问其元素,元素从特定容器的尾部(即栈顶)被压入和弹出,这被称为堆栈的顶部。

  3. stack 的底层容器可以是任何标准容器类模板或者一些其他特定的容器类,这些容器类应该支持以下操作

    • empty:判空操作

    • size:获取有效元素个数

    • back:获取尾部元素操作

    • push_back:尾部插入元素操作

    • pop_back:尾部删除元素操作

  4. 标准容器类 vector、deque、list 均符合这些要求,默认情况下,如果没有为 stack 指定特定的底层容器类,则使用标准容器双端队列 deque

容器适配器/配接器:不是直接实现的,封装其他容器,包装转换实现出来的。


1.2 stack 的使用

stack 没有迭代器,有了迭代器就可以随意访问元素了,不能保证「后进先出」的性质了。

成员函数接口说明
stack()构造一个堆栈容器适配器对象,构造空的栈。
empty检查 stack 是否为空
size返回 stack 中有有效元素的个数
top返回栈顶元素的引用
push压栈,将一个元素压入 stack 中
pop出栈,将 stack 尾部元素弹出
swap(C++11)交换两个容器的内容(该成员函数调用非成员函数 std::swap 来交换底层容器)

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/197987?site
推荐阅读
相关标签