STL Deque(双向队列) C++

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37848958/article/details/80390122

头文件:#include<deque>  (动态一维数组)

定义:deque<变量类型> 变量名; 例:deque<变量类型> dq;

特点:支持随机访问(数组访问下表从0开始;at方法访问,会抛出异常),性能不如vector;

          可以在内部进行插入和删除操作,性能不如list;//性能介于vector和list之间

          deque两端具有快速插入和删除的能力;

常用方法(加粗):

两个(正向)迭代器:begin()和end();

两个(反向)迭代器:rbegin()和rend();//以上两组用于遍历整个双向队列;

清空:clear();//清除整个队列的元素;

插入:push_front();//从头部插入一个元素;

          push_back();//从尾部插入一个元素;

          insert();        //在某个位置插入一个元素;(参数迭代器,元素)

删除:pop_front();  // 头部弹出一个元素;

          pop_back();  //尾部弹出一个元素;

          erase();         //删除任意位置的一个元素;(参数迭代器)

注erase函数在deque和vector中尽量少使用,时间复杂度较高(效率低)

取值:front();          //返回头部第一个元素;

          back();          //返回尾部第一个元素;

          at();               //返回对应index位置的元素,会抛出异常;

          []  数组访问方式;//以数组下标的形式访问不会抛出异常;

判断是否为空:empty();//判断deque是否为空;

大小:size();                 //返回deque的大小;

交换:swap();                //交换两个deque;

猜你喜欢

转载自blog.csdn.net/m0_37848958/article/details/80390122