deque容器基本概念


Deque容器和Vector容器最大的差异

  1. 一在于deque允许使用常数项时间对头端进行元素的插入和删除
  2. 在于deque没有容量的概念,因为它是动态的以分段连续空间组合而成,随时可以增加一段新的空间并连接起来,所以,deque没有必须要提供所谓的空间保留(reserve)功能
  3. 虽然deque容器也提供了RAbdom Access Iterator,但是它的迭代器并不是普通的指针,其复杂度和vector不是一个量级,这当然影响各个运算的层面。因此,除非有必要,我们应该尽可能使用vector,而不是deque。对deque进行的操作顺序,为了最高效率,可将deque先完整的复制到一个vector中,对vector容器进行排序,再复制回deque

deque的构造函数

deque赋值操作

deque大小操作

deque双端插入和删除操作

deque数据存取

deque插入操作

deque删除操作

#include<iostream>using namespace std;
#include<deque>void printDeque(const deque<int>&d)
{//iterator普通迭代器//reverse_iterator逆序迭代器//const_iterator 只读迭代器for (deque<int>::const_iterator it = d.begin(); it != d.end(); it++){cout << *it << endl;}cout << endl;
}void test01()
{deque<int >d;d.push_back(10);d.push_back(40);d.push_back(30);d.push_back(20);printDeque(d);deque<int>d2(d.begin(),d.end());d2.push_back(10000);//交换d.swap(d2);printDeque(d);//d2数据是10 40 30 20 if (d2.empty()){cout << "为空" << endl;}else{cout << "不为空,大小为:" <<d2.size()<< endl;}
}void test02()
{deque<int>d;d.push_back(10);d.push_back(30);d.push_back(20);d.push_front(100);d.push_front(200);printDeque(d);//200 100 10 30 20//删除 头删 尾删d.pop_back();d.pop_front();printDeque(d);cout << "front" << d.front() << endl;cout << "back" << d.back() << endl;//插入deque<int>d2;d2.push_back(50);d2.push_back(60);d2.insert(d2.begin(), d.begin(), d.end());printDeque(d2);//100 10 30 50 60}int  main()
{//test01();test02();system("pause");return 0;
}

系统排序sort,引用头文件#include<algorithm>

//排序规则
bool myCompare(int v1, int v2)
{return v1 > v2;
}//排序sort
void test03()
{deque<int>d;d.push_back(5);d.push_back(15);d.push_back(3);d.push_back(40);d.push_back(7);printDeque(d);//排序sort(d.begin(), d.end());printDeque(d);//从大到小sort(d.begin(), d.end(),myCompare);printDeque(d);
}int  main()
{//test01();//test02();test03();system("pause");return 0;
}

c++中的deque容器相关推荐

  1. 深入研究 C++中的 STL Deque 容器

    本文档深入分析了std::deque,并提供了一个指导思想:当考虑到内存分配和执行性能的时候,使用std::deque要比std::vector好. 介绍 本文深入地研究了std::deque 容器. ...

  2. 编写程序处理一个 string 类型的 list 容器。在该容器9.27:中寻找一个特殊值,如果找到,则将它删除掉。用 deque容器重写上述程序。

    //list容器 #include<iostream> #include<list> using namespace std; int main(void) {     str ...

  3. C++/C++11中std::deque的使用

    std::deque是双端队列,可以高效的在头尾两端插入和删除元素,在std::deque两端插入和删除并不会使其它元素的指针或引用失效.在接口上和std::vector相似.与sdk::vector ...

  4. STL 之 deque容器详解

    Deque 容器 deque容器是C++标准模版库(STL,Standard Template Library)中的部分内容.deque容器类与vector类似,支持随机访问和快速插入删除,它在容器中 ...

  5. C++ STL deque容器添加和删除元素方法完全攻略

    deque 容器中,无论是添加元素还是删除元素,都只能借助 deque 模板类提供的成员函数.表 1 中罗列的是所有和添加或删除容器内元素相关的 deque 模板类中的成员函数. 表 1 和添加或删除 ...

  6. STL Deque 容器

    STL Deque 容器 Deque简介 deque是"double-ended queue"的缩写,和vector一样都是STL的容器,deque是双 端的,而vector是单端 ...

  7. C++中的deque、stack、queue及priority_queue

    C++中的deque.stack.queue及priority_queue 文章目录 C++中的deque.stack.queue及priority_queue 一.deque 二.stack 三.q ...

  8. STL之Deque容器

    1.Deque容器 1)deque是"double-ended queue"的缩写,和vector一样都是STL的容器,deque是双端数组,而vector是单端的. 2)dequ ...

  9. C++ STL学习笔记(5) Vector容器, array容器,deque容器

    动态增长的数组vector,当它放入的元素满了的时候,会自动的扩充内存,但是,在计算机中内存不能够实现原地扩充,因为在申请了一块固定大小的内存之后,这块内存不管有没有用完,他后面的内存都有可能别的内容 ...

最新文章

  1. java 图形化库_java图形界面之图形化按钮
  2. centos6.5下升级gnutls
  3. centos6.5安装jira6.3.6详细文档汉化破解
  4. redis api-list
  5. 使用.Net 1.1的项目,TreeView控件不能正常显示
  6. Anaconda配置的环境里面增加第三方库的方法
  7. linux下qt加载boost,信号槽的实现实例—— Qt 和 Boost
  8. 用std::thread替换实现boost::thread_group
  9. linux实现快捷键,Linux Bash下如何实现快捷键效果
  10. 有屋(东莞)搬家啦~ Sketchup草图大师设计拆单 有屋拆单 全屋定制拆单 衣柜橱柜拆单
  11. codesmith mysql 注释_完美解决CodeSmith无法获取MySQL表及列Description说明注释的方案...
  12. windows远程桌面不能复制粘贴的解决办法
  13. mui 图片预览(3)
  14. 超文本传输协议(HTTP)
  15. 【Linux】实用文件指令
  16. 喜 欢 和 爱 的 区 别
  17. visual studio程序打包发布的方法
  18. 华为nova7 pro怎么升级鸿蒙,华为nova7升级到EMUI11,8大功能提升,带来更新体验
  19. 华师 计算机组成原理作业,16秋华师《计算机组成原理》在线作业.doc
  20. 《ACT 敏捷教练战术手册》正式发布:ACT 是什么?它和 Scrum 与 Kanban 有什么区别? ...

热门文章

  1. 在java web工程中jsp页面中使用kindeditor
  2. spring boot高性能实现二维码扫码登录(上)——单服务器版
  3. VMware vSphere克隆虚拟机
  4. ORACLE基本SQL语句-查询篇
  5. Web开发常出现的错误[个人收集]
  6. 微软项目技术结构思路 ExtJs/JQuery + Asp.net MVC + Wcf service + Entity Framework
  7. 小程序源码 租房管理系统_如何通过租房小程序开发快速引流
  8. form字体和颜色java安卓开发_Android 修改App中默认TextView的字体和颜色
  9. php jquery ajax登录,jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)
  10. 亚信联创java面试题_亚信联创面试题及答案