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;

Parameters

  1. T − 包含元素的类型。T 可以用包括用户自定义类型在内的任何其他数据类型替换。

  2. Container − 基础容器对象的类型。

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 交换两个堆栈的内容。