当前位置: 首页 > news >正文

deque的优缺点

deque的优缺点

  • 1.vector的优点和缺点
      • 1.1优点
      • 1.2缺点
  • 2.list的优点 和缺点
      • 2.1优点
      • 2.2缺点
  • 什么是高速缓存命中率
  • deque
    • deque的优缺点
      • 优点
      • 缺点

前言:我们了解deque是想结合vector和list的优点来实现,但是这只是个半成品,都达不到它们优点的极致。

在这里插入图片描述

1.vector的优点和缺点

1.1优点

vector是数组,直接下标,迭代器访问

  • 支持下标随机访问,效率高
  • 支持尾插,尾删效率高
  • cpu高速缓存访问命中率高,数据访问效率高

1.2缺点

  • 头部和中间插入删除效率低
  • 插入存在扩容,扩容有一定的性能消耗,和空间浪费。

2.list的优点 和缺点

list是链表,不会扩容,移动数据,只需要修改指针

2.1优点

  • 插入和删除的效率高,不管头部,中间还是尾部
  • 插入不需要扩容,按需申请释放内存。(扩容是需要 底层重新分配内容和拷贝底层数组的操作)

2.2缺点

  • 不支持下标随机访问,访问数据效率低
  • cpu高速缓存访问命中率低,访问数据慢。

什么是高速缓存命中率

在这里插入图片描述
在这里插入图片描述

  • 对于vector【1,2,3,4】如果我们想访问1,cpu发现没有在缓存里面,然后加载vector[0]的地址和后面的块到缓存里面,后续访问,2,3,4缓存是击中的,效率就高
  • 对于list的它的地址不是连续的,开始1,缓存未击中,后续访问2,3,4也要加载,效率慢

所以为什么vector的cpu访问效率高

deque

deque的结构

在这里插入图片描述

这是对于每个buffer都满时,访问第一个i个数据时,第x个bufferx=i/10;位置等于y=i%10.

在这里插入图片描述

更细节的结构

deque的优缺点

优点

  • 图中看出,尾插和删除的时候如果buffer没有满可以插入位置,满了就node++,再new一个buffer,中控数组提前开好了,并不用扩容像vector那样开辟更大的空间再拷贝。头插入删除也是
  • 支持下标计算访问,迭代器访问数据也还算高的。

缺点

  • 对于中间插入,数组buffer的数据后移或者前移,,头插移动可能会增加一个缓冲区buffer,但是里面数据只有几个,原来的位置计算x=i/10,y=i%10,都会出现错误,还要考虑减去数。所以访问的效率没有vector高。
http://www.dtcms.com/a/536073.html

相关文章:

  • 基恩士PLC自定义定时器(预设值支持Real类型)
  • 【逆向】Android程序Hook native方法
  • dw做的网站乱码网站建设设计语言
  • 网站模板拍卖seo教程
  • 《jEasyUI 创建 CRUD 数据网格》
  • 神经网络之窗口大小对词语义向量的影响
  • 计算机视觉:pyqt5+yoloV5目标检测平台 python实战 torch 目标识别 大数据项目 目标跟踪(建议收藏)✅
  • OpenCV 高级图像处理
  • UML内容
  • 【强化学习核心解析】特点、分类与DQN算法及嵌入式低功耗应用
  • OpenCV轻松入门_面向python(第八章 形态学操作)
  • 网站建设维护面试英雄联盟网站模板
  • 网络安全:金盾 RASP 应用防护
  • Cursor MCP Java程序员从零开始实战教程 第一章-第四节-MCP服务器安装与配置
  • __金仓数据库替代MongoDB护航医疗隐私:医院患者随访记录安全存储实践__
  • 有没有教做衣服的网站济南建设工程交易中心网站
  • MongoDB使用命令行导出导入索引
  • __金仓数据库平替MongoDB全栈安全实战:从文档存储到多模一体化的演进之路__
  • Python爬虫实战:新闻数据抓取与MongoDB存储全流程
  • 一站式搭建WordPress网站与Nginx RTMP流媒体服务
  • 使用 EasyExcel 进行 多 Sheet 导出
  • 做游戏网站赚钱么云服务器怎么用详细步骤
  • 建设网站的技术回龙观手机网站开发服务
  • 边缘计算与物联网中的 MDM和OTA
  • Linux物联网常用7天循环视频录制软件架构解决方案
  • Arguments: ls-remote --tags --heads git://github.com/adobe-webplatform/eve.git
  • Glide 图片缓存:异步更新 + 动画支持 + 自定义目录+自定义刷新时效
  • SWAT模型应用
  • 界面控件DevExpress WPF v25.1 - 官宣支持Avalonia XPF
  • HarmonyOS应用日志HiLog:从基础使用到高级调试技术