deque是一个双端数组,可以对头端和尾端进行插入和删除操作
deque内部工作原理deque和vector的区别:
deque对于头部的插入和删除效率比vector高
vector访问元素时速度比deque快,这和两者的内部实现有关
deque内部有个中控器,维护每段缓冲区中的内容,缓冲区中存放数据
中控器维护的是每个缓冲区的地址,使得使用deque时像一片连续的内存空间
deque的迭代器是支持随机访问的迭代器
deque构造函数deque deque& operator=(const deque &d); //重载赋值运算符assign(begin(),end()); //将全部数据拷贝给本身assign(n,elem); //将n个elem赋值给本身
deque大小操作
empty(); //判断容器是否为空,是返回1,否返回0size(); //返回容器中元素个数resize(num); //重新指定容器长度为num,若容器变长,以默认值0填充新位置;若容器变短,末尾超出容器长度的部分被删除resize(num,elem); //重新指定容器长度为num,若容器变长,以elem填充新位置;若容器变短,末尾超出容器长度的部分被删除
deque插入和删除
push_back(elem); //在容器尾部插入一个数据push_front(elem); //在容器头部插入一个数据pop_back(); //删除容器最后一个数据pop_front(); //删除容器第一个数据insert(pos,elem); //在迭代器pos位置插入一个elem数据,返回新数据位置insert(pos,n,elem); //在迭代器pos位置插入n个elem数据,无返回值insert(pos,begin,end); //在迭代器pos位置插入[begin,end)区间的数据,无返回值erase(pos); //删除迭代器pos位置的数据,返回下一个数据位置erase(begin,end); //删除[begin,end)区间的数据,返回下一个数据的位置clear(); //清空所有数据
deque数据存取
at(int idx); //返回索引idx所指的数据operator[]; //重载[]front(); //返回容器中第一个数据元素back(); //返回容器中最后一个数据元素



