功能:双端数组,可以对头端进行插入删除操作
deque与vector区别:
1.vector对于头部的插入删除效率低,数据量越大,效率越低
2.deque相对而言,对头部的插入删除速度比vector快
3.vector访问元素时的速度比deque快,这是因为两者的内部实现不同
deque内部工作原理:
内部有中控器,维护每段缓冲区中的内容,缓冲区中存放真实数据
中控器维护的是每个缓冲区的地址,使得使用deque时像一片连续的内存空间
deque容器的迭代器也是支持随机访问
deque容器的构造函数
#include <iostream>
#include<deque>
#include<algorithm>
using namespace std;
void printdeque(deque<int>&d1)
{
for (deque<int>::iterator it = d1.begin(); it != d1.end(); it++)
{
cout << *it << " ";
}
cout << endl;
}
//在上述函数中it是可以通过诸如*it=100进行修改的
// 如果想要其无法修改,除了在参数中对容器进行const常量化操作,还要修改迭代器名称为const_iterator
//void printdeque(const deque<int>& d1)
//{
// for (deque<int>::const_iterator it = d1.begin(); it != d1.end(); it+