C++ Library - <stack>
介绍 (Introduction)
Stack是一种数据结构,设计用于在LIFO(后进先出)上下文中运行。 在堆栈元素中插入以及仅从一端移除。
Stack类是容器适配器。 容器是保存相同类型数据的对象。 可以从不同的序列容器创建堆栈。 如果未提供容器,则使用默认的deque容器。 容器适配器不支持迭代器,因此我们不能将它们用于数据操作。 但是它们分别支持push()和pop()成员函数来插入和删除数据。
定义 (Definition)
下面是
template <class T, class Container = deque<T> > class stack;
参数 (Parameters)
T - 包含的元素的类型。
T可以由包括用户定义类型的任何其他数据类型代替。
Container - 基础容器对象的类型。
成员类型 (Member types)
以下成员类型可以用作参数或按成员函数返回类型。
Sr.No. | 会员类型 | 定义 |
---|---|---|
1 | value_type | T(模板的第一个参数) |
2 | container_type | 模板的第二个参数 |
3 | size_type | size_t |
4 | reference | value_type& |
5 | const_reference | const value_type& |
来自的函数
下面是
构造函数 (Constructors)
Sr.No. | 方法和描述 |
---|---|
1 | stack::stack 默认构造函数 构造一个空堆栈对象,其元素为零。 |
2 | stack::stack copy构造函数 构造一个堆栈,其中包含另一个堆栈中存在的每个元素的副本。 |
3 | stack::stack 移动构造函数 使用move语义构造一个包含其他内容的堆栈。 |
Destructor
Sr.No. | 方法和描述 |
---|---|
1 | stack::~stack 通过释放容器内存来销毁堆栈。 |
成员函数 (Member functions)
Sr.No. | 方法和描述 |
---|---|
1 | stack::emplace 构造并在堆栈顶部插入新元素。 |
2 | stack::empty 测试堆栈是否为空。 |
3 | stack::operator= copy version 通过替换旧内容将新内容分配给堆栈。 |
4 | stack::operator= 移动版本 通过替换旧内容将新内容分配给堆栈。 |
5 | stack::pop 从堆栈中删除顶部元素。 |
6 | stack::push copy version 在堆栈顶部插入新元素。 |
7 | stack::push move version 在堆栈顶部插入新元素。 |
8 | stack::size 返回堆栈中存在的元素总数。 |
9 | stack::swap 使用另一个堆栈的内容交换堆栈的内容。 |
10 | stack::top 返回对堆栈最顶层元素的引用。 |
非成员重载函数 (Non-member overloaded functions)
Sr.No. | 方法和描述 |
---|---|
1 | operator== 测试两个堆栈是否相等。 |
2 | operator!= 测试两个堆栈是否相等。 |
3 | operator< 测试第一个堆栈是否小于其他堆栈。 |
4 | operator<= 测试第一个堆栈是否小于或等于其他堆栈。 |
5 | operator> 测试第一个堆栈是否大于其他堆栈。 |
6 | operator>= 测试第一个堆栈是否大于或等于其他堆栈。 |
7 | swap 交换两个堆栈的内容。 |