#include<deque>
#include<iostream>
using namespace std;
int main(){
/*使用push_back()方法从尾部插入元素,会不断扩张队列*/
//定义deque对象,元素类型是整型
deque<int> d;
//从尾部连续插入三个元素
d.push_back(1);
d.push_back(2);
d.push_back(3);
//以数组方式删除
cout<<d[0]<<" "<<d[1]<<" "<<d[2]<<endl;
/*从头部插入元素,不会新加元素,只将原有的元素覆盖*/
d.push_front(10);
d.push_front(20);
cout<<d[0]<<" "<<d[1]<<" "<<d[2]<<endl;
/*从中间插入元素,不会增加新元素,只将原有的元素覆盖*/
d.insert(d.begin()+1,88);
cout<<d[0]<<" "<<d[1]<<" "<<d[2]<<endl;
/*向前遍历*/
int i;
for(i=0;i<d.size();i++){
cout<<d[i]<<" ";
}
cout<<endl;
deque<int>::iterator it;
for(it=d.begin();it!=d.end();it++){
cout<<*it<<" ";
}
cout<<endl;
/*反向遍历*/
deque<int>::reverse_iterator rit;
for(rit=d.rbegin();rit!=d.rend();rit++){
cout<<*rit<<" ";
}
cout<<endl;
/*采用pop_front()方法从头部删除元素*/
d.pop_front();
d.pop_front();
for(it=d.begin();it!=d.end();it++){
cout<<*it<<" ";
}
cout<<endl;
/*采用pop_back()方法从尾部删除元素*/
d.pop_back();
d.pop_back();
for(it=d.begin();it!=d.end();it++){
cout<<*it<<" ";
}
cout<<endl;
/*采用erase()方法从中间删除元素*/
d.erase(d.begin()+1);
for(it=d.begin();it!=d.end();it++){
cout<<*it<<" ";
}
cout<<endl;
d.clear();
cout<<d.size()<<endl;
return 0;
}