deque容器概念
- deque是“double-ended queue”的缩写,和vector一样都是STL的容器,
- 唯一不同的是: deque是双端数组,而vector是单端的。
Deque 特点:
- deque在接口上和vector非常相似,在许多操作的地方可以直接替换。
- deque可以随机存取元素(支持索引值直接存取,用[]操作符或at()方法)
- deque头部和尾部添加或移除元素都非常快速, 但是在中部安插元素或移除元素比较费时。
使用时,包含头文件:#include < deque>
deque对象的默认构造
deque也是采用模板类实现。
deque对象的默认构造形式:deque<T> deqT
例如:
deque <int> deqInt; //存放int的deque容器。
deque <float> deqFloat; //存放float的deque容器。
deque <student> deqStu; //存放student的deque容器。
deque对象的带参数构造
deque<int> deqIntA;
方式1:deque<int> deqIntB(deqIntA.begin(),deqIntA.end()); //构造函数将(beg, end)区间中的元素拷贝给本身。
方式2:deque<int> deqIntC(10, 666); //构造函数将10个666元素拷贝给本身。
方式3:deque<int> deqIntD(deqIntA); //拷贝构造函数。
deque<int> deqIntA;
deqIntA.push_back(1);
deqIntA.push_back(2);
deqIntA.push_back(3);
deqIntA.push_back(4);
deque<int> deqIntB(deqIntA.begin(),deqIntA.end()); //1 2 3 4
deque<int> deqIntC(8, 666); //8 8 8 8 8
deque<int> deqIntD(deqIntA); //1 2 3 4
deque头部和末尾的添加移除操作
deque.push_back(element); //容器尾部添加一个数据
deque.push_front(element); //容器头部插入一个数据
deque.pop_back(); //删除容器最后一个数据
deque.pop_front(); //删除容器第一个数据
deque<int> d1;
d1.push_back(1); //尾部添加元素
d1.