写题写到双端队列了
记录一下基本的操作好了
#include <cstdio>
#include <cstring>
#include <cmath>
#include <queue>
#include <stack>
#include <map>
#include <iostream>
#include <set>
#include <vector>
#include <deque>
#include <algorithm>
using namespace std;
#define ll long long
const int mod = 1e9+7;
int main()
{
//使用 push_back()从尾部插入元素使队列不断扩张
deque<int> d;
d.push_back(-2);
d.push_back(1);
d.push_back(3);
d.push_back(6);
for(int i = 0;i < 4; i++)
printf("%d ",d[i]);
printf("\n");
//使用 push_front()从头部插入元素
d.push_front(11);
d.push_front(10);
//使用insert从中间插入元素
d.insert(d.begin()+1,100);
printf("%d %d %d\n",d[0],d[1],d[2]);
//前向遍历,以数组的方式
for(int i = 0;i < d.size(); i++)
printf("%d ",d[i]);
printf("\n");
//前向遍历,以迭代器的方式
/* deque<int>::iterator it;
for(it=d.begin();it!=d.end(); it++)
printf("%d ",*it);
printf("\n");
*/
//反向遍历
/* deque<int>::reverse_iterator it;
for (it = d.rbegin();it!=d.rend();it++)
printf("%d ",*it);
printf("\n");
*/
//采用pop_front()方法删除头部元素
/* d.pop_front();
deque<int>::iterator it;
for(it = d.begin(); it != d.end(); it++)
printf("%d ",*it);
printf("\n");
*/
//采用pop_back()方法从尾部删除元素
/* d.pop_back();
deque<int>::iterator it;
for(it = d.begin();it != d.end(); it++)
printf("%d ",*it);
printf("\n");
*/
//采用erase()方法释放中间元素
d.erase(d.begin()+1);
deque<int>::iterator it;
for(it = d.begin();it != d.end(); it++)
printf("%d ",*it);
printf("\n");
return 0;
}