栈和队列
栈和队列是STL中的两个数据结构,其底层实现可以是多种容器(vector,deque,list都可以),但其本身不被归类为容器,而被归类为容器适配器container adapter
栈
特点:先进后出
函数:
以stack
size():返回栈元素个数
empty():判空
push(int x):将x压栈
pop():出栈,弹出栈顶元素
top():返回栈顶元素的值
栈的应用
-
括号匹配问题
用于判断一个括号表达式是否有效
-
删除相邻重复字母
-
逆波兰表达式(后缀表达式)
队列
最简单的单端队列,queue
还有双端队列,可以从尾部出队,头部入队
还有优先级队列,
还有单调队列,
特点:先进先出
函数:
以queue
size():返回队列元素个数
empty():判空
push(int x):将x从队尾入列
pop():出列,队头元素出列
front():返回队头元素
back():返回队尾元素
队列的应用
-
滑动窗口
-
前K个高频元素