Cpp Standard Library 简明教程
C++ Library - <stack>
Introduction
堆栈是一种数据结构,设计用于在 LIFO(后进先出)上下文中操作。在堆栈中,元素仅从一端插入和移除。
Stack 类是一个容器适配器。容器是容纳相同类型数据的对象。Stack 可以在不同的顺序容器中创建。如果未提供容器,它将使用默认 deque 容器。容器适配器不支持迭代器,因此我们不能将其用于数据操作。但是,它们支持成员函数 push() 和 pop(),分别用于数据插入和移除。
Definition
下面是 <stack> 头文件中 std::stack 的定义
template <class T, class Container = deque<T> > class stack;
Member types
以下成员类型可作为参数或返回类型,由成员函数使用。
Sr.No. |
Member types |
Definition |
1 |
value_type |
T(模板的第一个参数) |
2 |
container_type |
模板的第二个参数 |
3 |
size_type |
size_t |
4 |
reference |
value_type& |
5 |
const_reference |
const value_type& |
Functions from <stack>
下面是 <stack> 头文件的所有方法列表。
Constructors
Sr.No. |
Method & Description |
1 |
stack::stack 默认构造函数构造一个空的堆栈对象,其中不包含任何元素。 |
2 |
stack::stack 复制构造函数构造一个堆栈,其中包含另一个堆栈中存在元素的副本。 |
3 |
stack::stack 移动构造函数使用移动语义构造一个堆栈,其中包含其他堆栈的内容。 |
Destructor
Sr.No. |
Method & Description |
1 |
stack::~stack 通过取消分配容器内存来销毁堆栈。 |
Member functions
Sr.No. |
Method & Description |
1 |
stack::emplace 在堆栈顶部构造并插入新元素。 |
2 |
stack::empty 测试堆栈是否为空。 |
3 |
stack::operator= copy 版本分配新内容并替换堆栈中的旧内容。 |
4 |
stack::operator= move 版本分配新内容并替换堆栈中的旧内容。 |
5 |
stack::pop 删除堆栈中的顶部元素。 |
6 |
stack::push copy 版本插入新元素到堆栈顶部。 |
7 |
stack::push move 版本插入新元素到堆栈顶部。 |
8 |
stack::size 返回堆栈中存在的元素总数。 |
9 |
stack::swap 将堆栈中的内容与另一个堆栈的内容交换。 |
10 |
stack::top 返回堆栈最顶上的元素的引用。 |
Non-member overloaded functions
Sr.No. |
Method & Description |
1 |
[role="bare"]../cpp_standard_library/cpp_stack_operator_equal_to.html测试两个堆栈是否相等。 |
2 |
operator!= 测试两个堆栈是否相等。 |
3 |
operator< 测试第一个堆栈是否小于另一个堆栈。 |
4 |
operator⇐ 测试第一个堆栈是否小于或等于另一个堆栈。 |
5 |
operator> 测试第一个堆栈是否大于另一个堆栈。 |
6 |
operator>= 测试第一个堆栈是否大于或等于另一个堆栈。 |
7 |
swap 交换两个堆栈的内容。 |