deque是双向队列无法在任意位置插入元素,但可以访问任意位置的元素
新建deque
deque<int> dq;
插入元素
//在队首加入
dq.push_front(100);
dq.push_front(200);
//在队尾加入
dq.push_back(31231);
dq.push_back(0);
弹出元素
//队首删除
dq.pop_front();
//队尾删除
dq.pop_back();
删除元素
//指定位置删除
deque<int>::iterator it;
for(it=dq.begin();it!=dq.end();it++)
if(*it==100) break;
dq.erase(it);
获取元素
//at函数形式
dq.at(0);
//下标形式
dq[0];
//获取队首元素
cout<<dq.front()<<endl;
//获取队尾元素
cout<<dq.back()<<endl;
修改元素
//下标方式
dq[0]=7878;
//at函数方式
dq.at(0)=7879;
返回长度
dq.size();
返回deque是否为空
dq.empty();
总代码
#include<iostream>
#include<deque>
using namespace std;
int main(){
//新建一个deque
deque<int> dq;
//增加元素
//在队首加入
dq.push_front(100);
dq.push_front(200);
//在队尾加入
dq.push_back(31231);
dq.push_back(0);
//删除元素
//队首删除
dq.pop_front();
//队尾删除
dq.pop_back();
//指定位置删除
deque<int>::iterator it;
for(it=dq.begin();it!=dq.end();it++)
if(*it==100) break;
dq.erase(it);
//修改元素
//下标方式
dq[0]=7878;
//at函数方式
dq.at(0)=7879;
//获取元素
cout<<dq.at(0)<<endl;
dq.at(0)=7879;
cout<<dq[0]<<endl;
//获取队首元素
cout<<dq.front()<<endl;
//获取队尾元素
cout<<dq.back()<<endl;
//获取deque的大小
cout<<dq.size()<<endl;
cout<<dq.empty()<<endl;
return 0;
}