- // <stack>
- template < class T, class Container = deque<T> > class stack;
栈(Stack)是一个容器适配器(Container adaptor)类型,被特别设计用来运行于LIFO(Last-in first-out)场景,在该场景中,只能从容器末尾添加(Insert)或提取(Extract)元素。
#include<stack>:
- // <stack>
- template < class T, class Container = deque<T> > class stack;
栈(Stack)是一个容器适配器(Container adaptor)类型,被特别设计用来运行于LIFO(Last-in first-out)场景,在该场景中,只能从容器末尾添加(Insert)或提取(Extract)元素。
T
容器所包含的元素的类型。
在类模板内部,使用其别名为 value_type 的成员类型。
Container
底层的用于存储元素的容器的类型。
用来实现栈的底层容器必须满足顺序容器的所有必要条件。同时,它还必须提供以下语义的成员函数:
满足上述条件的标准容器有 std::vector、std::deque 及 std::list,如果未特别指定 stack 的底层容器,标准容器 std::deque 将被使用。
Any sequence container supporting operations back(), push_back() and pop_back() can be used to instantiate stack. In particular, vector, list and deque can be used.
成员类型 | 定义 |
---|---|
value_type | 第一个模板参数 T |
container_type | 第二个模板参数 Container |
size_type | Container::size_type |
reference | Container::reference |
const_reference | Container::const_reference |
(constructor) | 创建 stack |
(destructor) | 释放 stack |
operator= | 赋值操作 |
Element access:
top | 访问顶部元素 |
Capacity:
empty | 判断是否为空 |
size | 返回有效元素个数 |
Modifiers:
push | 在容器顶部插入元素 |
pop | 移除容器顶部的元素 |
emplace C++11 | 在容器顶部放置插入元素 |
swap | 交换容器的内容 |
operator==、operator!=、operator<、operator<=、operator>、operator>= | 关系操作符 |
std::swap | 交换两个栈的内容 |