1.双端队列常用操作
deq.front():返回双向队列的头部元素。
deq.push_front(x):把元素x插入到双向队列的头部。
deq.pop_front():弹出双向队列的第一个元素。
deq.back():返回双向队列的尾部元素。
deq.push_back(x):把元素x插入到双向队列的尾部。
deq.pop_back():弹出双向队列的尾部元素。
2.双端队列的代码展示
#include "queue" int main() { //定义一个双向队列 deque<int> de; //两种入队列方式 de.push_back(1);//尾部插入元素 de.push_back(2); de.push_front(3);//头部插入元素 //三种访问方式 cout<<de[0]<<endl; //按照下标访问元素,3 cout<<de.front()<<endl;//返回头元素的值,3 cout<<de.back()<<endl;//返回尾元素的值,2 //两种出队方式 de.pop_front();//头部出队 de.pop_back();//尾部出队 //此时队列中只有元素1 //遍历队列中的元素 while(!de.empty()){ cout<<de.front()<<endl; //1 de.pop_front(); } return 0; }
3.双端队列的leetcode题目
找固定滑动窗口的最大值:https://github.com/AntonioSu/leetcode/blob/master/problems/239.SlidingWindowMaximum.md
计算只有加减乘除运算符和空格的中缀表达式:https://github.com/AntonioSu/leetcode/blob/master/problems/227.BasicCalculatorII.md
找到数组中中间的数值 https://github.com/AntonioSu/leetcode/blob/master/problems/295.FindMedianfromDataStream.md