赞
踩
文档介绍:stack - C++ Reference (cplusplus.com)
// T: 容器中存储的元素的类型
template <class T, class Container = deque<T> > class stack;
stack 是一种「容器适配器」(container adapter),专门用在具有 LIFO (后进先出) 操作的上下文环境中,其中元素仅从容器的一端插入和提取。
stack 是作为容器适配器被实现的,「容器适配器」即是「对特定容器类封装」作为其底层的容器,并提供一组特定的成员函数来访问其元素,元素从特定容器的尾部(即栈顶)被压入和弹出,这被称为堆栈的顶部。
stack 的底层容器可以是任何标准容器类模板或者一些其他特定的容器类,这些容器类应该支持以下操作:
empty:判空操作
size:获取有效元素个数
back:获取尾部元素操作
push_back:尾部插入元素操作
pop_back:尾部删除元素操作
标准容器类 vector、deque、list 均符合这些要求,默认情况下,如果没有为 stack 指定特定的底层容器类,则使用标准容器双端队列 deque。
容器适配器/配接器:不是直接实现的,封装其他容器,包装转换实现出来的。
stack 没有迭代器,有了迭代器就可以随意访问元素了,不能保证「后进先出」的性质了。
成员函数 | 接口说明 |
---|---|
stack() | 构造一个堆栈容器适配器对象,构造空的栈。 |
empty | 检查 stack 是否为空 |
size | 返回 stack 中有有效元素的个数 |
top | 返回栈顶元素的引用 |
push | 压栈,将一个元素压入 stack 中 |
pop | 出栈,将 stack 尾部元素弹出 |
swap(C++11) | 交换两个容器的内容(该成员函数调用非成员函数 std::swap 来交换底层容器) |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。