stack的常见用法详解

目录

  • stack的定义
  • stack容器内元素的访问
  • stack常用函数实例解析
  • stack的常见用途

stack 翻译为栈,是STL中实现的一个后进先出的容器

stack的定义

需要的头文件

#include

需要的其他东西:

using namespace std;

其定义的写法和其他STL容器相同,typename可以任意基本数据类型或容器。

stack<typename> name;

stack容器内元素的访问

由于栈(stack)本身就是一种后进先出的数据结构,在STL的stack中只能通过top()来访问栈顶元素。
stack的常见用法详解_第1张图片

stack常用函数实例解析

(1) push()
push(x)将x入栈,时间复杂度为O(1)。
(2) top()
top()获得栈顶元素,时间复杂度为O(1)。
(3) pop()
pop()用以弹出栈顶元素,时间复杂度为O(1)。
stack的常见用法详解_第2张图片
(4) empty()
empty()可以检测stack内是否为空,返回true为空,返回false为非空,时间复杂度为O(1)。
(5) size()
size()返回stack内元素的个数,时间复杂度为O(1)。

stack的常见用途

stack用来模拟实现一些递归, 防止程序对栈内存的限制而导致程序运行出错。
一般来说,程序的栈内存空间很小,对有些题目来说,如果用普通的函数来进行递归,一旦递归层数过深
(不同机器不同,约几千至几万层),则会导致程序运行崩溃。如果用栈来模拟递归算法的实现,
则可以避免这一方面的问题 (不过这种应用出现较少)。

你可能感兴趣的:(算法,算法)