deque是“double-ended queue”的缩写,和vector一样都是STL的容器,deque是双端数组,而vector是单端的。
deque在接口上和vector非常相似,在许多操作的地方可以直接替换。
deque可以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法,这个等下会详讲)。
deque头部和尾部添加或移除元素都非常快速。但是在中部安插元素或移除元素比较费时。
#include <deque>
#include<iostream>
#include<deque> //头文件
using namespace std;
int main()
{
deque<int> d1(10);
for(int i=0;i<d1.size();i++)
{
d1[i]=i;
}
d1.push_back(99);
d1.push_front(88);//插入
d1.front()=77;
d1.back()=66;//替换
d1.pop_back();
d1.pop_front();//取出
for(deque<int>::iterator it=d1.begin();it!=d1.end();it++)//迭代器
{
cout<<*it<<" ";
}
cout<<endl;
cout<<"************************"<<endl;
int array[]={3,2,3,4,5,2,3,6,3,8,3};
deque<int> d2(array,array+sizeof(array)/sizeof(array[0]));
for(deque<int>::iterator it=d2.begin();it!=d2.end();)
{
if(*it==3)
{
it=d2.erase(it);//删除
}
else
++it;//
}
for(deque<int>::iterator it=d2.begin();it!=d2.end();it++)
{
cout<<*it<<" ";
}
cout<<endl;
return 0;
}