STL_Deque(双端队列)

前言:

  STl是个好东西,虽然他在不开O2的条件下会跑的很慢,但他着实会让你的代码可读性大大提高,令你的代码看起来简单又整洁。

双端队列:

  顾名思义,双端队列是有两个头的,一个対首指针,一个队尾指针,先进先出或是先进后出都可以实现。

基本操作:

  (1) deque<int> dq 定义一个int类型的双端队列dq

  (2) deque<int> dq(15) 队列dq具有15个元素单位

  (3) deque<int> dq(15,10) 队列dq内15个元素初始值均为10

  (4) dq.push_back(x) 将x放入dq的末端

  (5) dq.push_front(z) 将x放入dq的前端

  (6) dq.size() 返回队列中元素的个数

扫描二维码关注公众号,回复: 2563414 查看本文章

  (7) dq.pop_front() 弹出队列的前端元素
  (8) dq.pop_back() 弹出队列的后端元素

  (7) dq.front() 返回队列的前端元素
  (8) dq.back() 返回队列的后端元素

代码实现:

 1 #include<cstdio>
 2 #include<queue>
 3 using namespace std;
 4 const int maxn=1e5+5;
 5 deque<int> dq;
 6 int a[maxn]={0,1,2,3,4,5,6,7,8,9,10};
 7 int main(){
 8     dq.push_front(a[1]),dq.push_front(a[2]),dq.push_front(a[3]);
 9     dq.push_back(a[4]),dq.push_back(a[5]),dq.push_back(a[6]);
10     dq.push_front(a[7]),dq.push_front(a[8]);
11     dq.push_back(a[9]),dq.push_back(a[10]);
12     dq.pop_front(),dq.pop_front();
13     dq.pop_back(),dq.pop_back();
14     int n=dq.size();//n=6
15     for(int i=1;i<=n;i++){
16         printf("%d ",dq.front());
17         dq.pop_front();
18     }
19     return 0;
20 }
deque

单调队列:

猜你喜欢

转载自www.cnblogs.com/RisingGods/p/9426127.html
今日推荐