欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

STL容器系列文章:stack容器

程序员文章站 2024-03-18 13:09:28
...

1. 头文件

#include <stack>

2. 定义

  • 是一种LIFO(后进先出)的数据结构,单端开口的容器,模拟栈的存储结构。如下图
    STL容器系列文章:stack容器STL容器系列文章:stack容器
  • 容器模板类
template<class T, class Container = deque<T> > class stack

// T: 元素类型,可以是int/double等
// Container: 底层采用的基础容器类型,默认是deque
  • Container只能是序列容器:vector/deque/list,该容器需要同时支持empty()/size()/back/push_back()/pop_back五个函数操作

3. 对象创建

方法 说明
stack firstStack; 存放int类型的空栈,size = 0,默认基础容器类型deque
stack<int, vector> secondStack; 用vector实现一个空栈
deque myDeque (3 , 100); stack thirdStack(myDeque); 使用基础容器来初始化栈:deque
vector myVector (2, 200); stack<int, vector> fourthStack(myVector); 使用基础容器来初始化栈:vector

4. 常用方法

方法 说明
empty() 栈中无元素返回true,有元素返回false
size() 栈中元素的个数
top() 返回栈顶元素的引用T&,栈为空会报错
push(const T& obj) 拷贝构造函数;调用底层容器的push_back()函数完成
push(T&& obj) 移动构造函数;调用底层容器有右值引用的push_back()函数
pop() 弹出栈顶元素
emplace(arg, …) 一个或多个参数,用于构造同一个对象,并直接作为栈顶元素
swap(stack& otherStack) 两个栈中元素互换,底层基础容器类型需一致

5. 使用实例

leetcode


参考文章
stack的定义和常用方法
stack栈的实现

created by shuaixio, 2021.06.23