文章目录
队列【STL】
队列是只允许在一端
进行插入操作
,在另一端
进行删除
操作的线性表
,简称“队”
队列是一种先进先出
(First In First Out)的线性表
1.队列的STL用法↓
q.push(a)
:插入a到队列q的末尾
q.pop()
:删除队列q的队首元素
q.front()
:查询q的队首元素
q.back()
:查询q的队尾元素
q.size()
:查询q的元素个数
q.empty()
:查询q是否为空
2.队列例题
详见我的另一篇博文:洛谷P2058 [NOIP2016 普及组] 海港
双向队列【deque】(可用于单调队列)
单调队列
是一种主要用于解决滑动窗口
类问题的数据结构,主要用来解决区间最值
问题
时间复杂度为 O ( n ) O\left (n \right ) O(n)
1.deque的STL用法
d.front()
:返回最前一个元素的引用
d.back()
:返回最后一个元素的引用
d.pop_back()
:删除尾部的元素,不返回值
d.pop_front()
:删除头部元素,不返回值
d.push_back(a)
:在队尾添加一个元素a
d.push_front(a)
:在队头添加一个元素a
2.例题:洛谷P1886 滑动窗口/【模板】单调队列
(1)题意解释
有一个长为 n n n 的序列 a a a,以及一个大小
为 k k