deque对象的创建
deque<char> d1;
deque<int> d2(10); //创建一个有十个元素的deque队列
deque<double> d3(6,10.1); //创建一个有六个值为10.1的deque队列
deque<string>d4(begin,end); //创建一个以[begin,end)区间内的值为元素的deque队列
赋值 deque的赋值,deuqe与vector一样可以assign()函数 ,
d.assign(n,elem); //赋予deque队列d n个elem值;
d.assign(begin,end); //用[begin,end)区间的值赋值
元素访问
d[int idx]; //重载了[]运算符,可以直接用[]访问;这一点类似数组
d.at(int idx); //访问idx位置上的元素
d.front(); //返回第一个元素
d.back(); //返回最后一个元素
d.begin(); //返回第一个元素的迭代器;
d.end(); //返回指向最后一个元素的下一个迭代器;
添加元素
d.push_back(); //在尾部添加元素;
d.push_front(); //在头部添加元素; (注意 vector数组不具有在头部插入的功能)
d.insert(pos,elem); //在pos位置添加元素elem;
d.insert(pos,n,elem); //在pos位置添加n个元素elem;
d.insert(pos,begin,end); //在pos位置插入[begin,end)区间值作为元素;
删除元素 d.pop_back(); //从尾部删除元素
d.pop_front(); //从头部删除元素
d.erase(pos); //从pos位置删除元素
d.erase(begin,end); //删除[begin,end)区间
练习例子
#include<iostream>
#include<cstdio>
#include<cstring>
#include<deque>
using namespace std;
int main()
{
deque<int> d2(10);//创建一个有十个int类型元素的优先队列
for(int i=0;i<10;i++){
d2[i]=i; //为队列赋值
cout<<d2.at(i)<<" ";
}
cout<<endl;
d2.push_back(77);
d2.push_front(99);
for(int i=0;i<12;i++){
cout<<d2[i]<<" ";
}
cout<<endl;
d2.pop_back();
d2.pop_front();
d2.erase(d2.begin()-3);
d2.erase(d2.end()-3);
for(int i=0;i<d2.size();i++){ //size()函数调用返回d2当下的大小;
cout<<d2.at(i)<<" ";
}
cout<<endl;
return 0;
}