deque以及使用举例--C++基础

简介: deque以及使用举例--C++基础

序列式容器:

vector是单向开口的连续线性空间,deque是一种双向开口的连续线性空间。所谓双向开口,意思就是可以在头尾两端分别做元素的插入和删除操作。


deque和vector的最大差异:

        在于deque允许常数时间内对头端进行插入和移除操作。

        在于deque没有所谓的容量的概念,因为它是以动态的分段连续空间组合而成,随时可以增加一段空间并链接起来。


deque是一段一段的定量连续空间组成的,需要维护这些定量空间所需要的内部数据结构肯定是要比vector复杂许多,所以,当对deque进行排序操作时候,为了提高效率,可将deque完整的复制到一个vector身上,将vector进行排序之后,再复制回deque。


代码示例:


#include"Test.h"
#include<vector>
#include<list>
#include<array>
#include<stack>
#include<deque>
#include<queue>
#include<algorithm>//为了使用find、sort等方法
void main()
{
  setlocale(LC_ALL, "chs");//识别中文
  deque<int> v1(5, 0);
  v1.push_back(1);
  v1.push_back(2);
  v1.push_front(5);
  v1.front();
  v1.back();
  deque<int>::iterator v2 = find(v1.begin(), v1.end(), 5);
  v1.insert(v2,4);
  v2 = find(v1.begin(), v1.end(), 2);
  v1.erase(v2);
  sort(v1.begin(), v1.end());//这样排序效率不高
  for (deque<int>::iterator v5 = v1.begin();
    v5 != v1.end();v5++)
  {
    cout << *v5 << endl;
  }
  vector<int> v3(v1.begin(), v1.end());
  sort(v3.begin(), v3.end());//使用这样的方法对deque排序
  //v2.size();
  v1.clear();
  getchar();
}

image.png


image.png


image.png


“Time is the only true unit of measure.”

参考书籍:

《STL源码剖析》



目录
相关文章
|
存储 C++
C/C++ Qt 基础通用组件的应用
QT 是一个跨平台C++图形界面开发库,利用QT可以快速开发跨平台窗体应用程序,在QT中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率。
341 0
C/C++ Qt 基础通用组件的应用
|
Linux C++
嵌入式linux基础:c++(五)构造函数
嵌入式linux基础:c++(五)构造函数
157 0
嵌入式linux基础:c++(五)构造函数
|
Linux 编译器 C++
嵌入式linux基础:c++(四)重载 指针 引用
嵌入式linux基础:c++(四)重载 指针 引用
141 0
嵌入式linux基础:c++(四)重载 指针 引用
|
Linux C++
嵌入式linux基础:c++(三)程序结构
嵌入式linux基础:c++(三)程序结构
161 0
嵌入式linux基础:c++(三)程序结构
|
编译器 调度 C++
C++从入门到精通(第四篇) :C++的基础和灵魂:类和对象(下篇)
在创建对象时,编译器通过调用构造函数,给对象中各个成员变量一个合适的初始值
115 0
C++从入门到精通(第四篇) :C++的基础和灵魂:类和对象(下篇)
|
存储 编译器 C语言
C++从入门到精通(第二篇) :C++的基础和灵魂:类和对象(上篇)
C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。 C++是基于面向对象的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。
135 0
C++从入门到精通(第二篇) :C++的基础和灵魂:类和对象(上篇)
|
存储 编译器 C语言
C++从入门到精通(第三篇) :C++的基础和灵魂:类和对象(中篇)
如果一个类中什么成员都没有,简称为空类。空类中什么都没有吗?并不是的,任何一个类在我们不写的情 况下,都会自动生成下面6个默认成员函数。
116 0
C++从入门到精通(第三篇) :C++的基础和灵魂:类和对象(中篇)
|
设计模式 测试技术 uml
[学习][笔记]设计模式(基于C/C++实现)之 设计基础
设计模式(基于C/C++实现)之 设计基础
377 0
[学习][笔记]设计模式(基于C/C++实现)之 设计基础
|
C++
【牛客刷题】带你在牛客刷题第六弹(C/C++基础)
哈喽,今天是我们牛客刷题训练第五弹,今天我们来刷一些C/C++的问题,这些问题相对于你刚学习C/C++基础来说会很好的帮助自己理解,我相信,只要我们一步步去分析,肯定是可以得到正确的答案的,来我们一起加油。
105 0
【牛客刷题】带你在牛客刷题第六弹(C/C++基础)