C++ deque底层原理

news2024/9/20 1:27:09

deque底层原理

  • 一、目的
  • 二、底层实现
  • 三、原理图
  • 四、类结构
  • 五、push_back
  • 六、pop_back

一、目的

实现双端数组

二、底层实现

双向开口的连续线性空间

三、原理图

deque

四、类结构

  • class deque : protected Deque base

  • _Deque_base._Deque_impl

M_map 			指针数组
_M_map_size 	_M_map的容量
_M_start		记录 map 数组中首个连续空间的信息
_M_finish		记录 map 数组中最后一个连续空间的信息
  • _Deque_iterator
_M_cur			指向当前正在遍历的元素
_M_first		指向当前连续空间的首地址
_M_last			指向当前连续空间的末尾地址
_M_node			用于指向 map 数组中存储的指向连续空间的指针
  • _deque buf size 连续空间中能容纳元素的个数
  • _M_initialize _map
创建 map,并配置缓冲区
_M_start 和_M_finish 指向中间的位置,方便公平地往上或者向下扩展空间

五、push_back

  • 当前连续空间够不够
  • map 空间够不够

六、pop_back

  • 删除最后一个节点,如果当前连续空间没有数据了,则释放该连续空间

推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家:
零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/Linux内核)
https://xxetb.xet.tech/s/VsFMs

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/948748.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java JUC并发编程 第五章 volatile与JMM

系列文章目录 第一章 java JUC并发编程 Future: link 第二章 java JUC并发编程 多线程锁: link 第三章 java JUC并发编程 中断机制: link 第四章 java JUC并发编程 java内存模型JMM: link 第五章 java JUC并发编程 volatile与JMM: link 文章目录 系列文章目录1 volatile 2大特…

KVM虚拟化ubuntu

KVM(Kernel-based Virtual Machine)是一种基于Linux内核的虚拟化技术,它将Linux内核作为虚拟机的底层操作系统,利用硬件虚拟化支持创建和管理虚拟机。KVM虚拟化技术被广泛应用于云计算、虚拟化服务器、虚拟化桌面等场景。 KVM虚拟…

最新无代码排名出炉,哪个平台最适合你?

随着无代码技术的迅速发展,国内外涌现出许多优秀的无代码平台提供商,企业在选择合适的无代码平台时可能会感到困惑,无从下手。为了帮助大家更好地了解国内真正的无代码平台厂商,本文将为您介绍几家具有代表性的厂商。 1.云表平台&…

数组中的第K个最大元素

题目链接 数组中的第K个最大元素 题目描述 注意点 需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素 解答思路 本题可以使用快速排序、堆排序或优先队列解决,快排可以比较快速找到某个元素在数组中排序后的位置,所以找…

Redis——》Redis的部署方式对分布式锁的影响

推荐链接: 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…

ToBeWritten之针对 Car ATTCK 的攻防矩阵

也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 转移发布平台通知:将不再在CSDN博客发布新文章,敬…

有时间窗车辆路径问题(vehicle routing problems with time windows,VRPTW)学习实践与base案例代码开发

有时间窗车辆路径问题(Vehicle Routing Problems with Time Windows,VRPTW)是一类著名的组合优化问题,涉及在有限时间窗口约束下,有效地安排多个车辆的路径,以满足客户需求。 在VRPTW中,假设有…

what(): NCCL Error 1: unhandled cuda error解决方法

文章目录 遇到问题解决方法参考 遇到问题 运行项目:ACL2021的一篇工作,LM-BFF (Better Few-shot Fine-tuning of Language Models) https://github.com/princeton-nlp/LM-BFF 遇到环境问题。 我的机器环境如下: 服务器上CUDA版本为11.4 GPU…

为什么要参加浙大MPA提面申请?你看看AB资格的弃考率

时间即将来到九月份,在这个时间点依然能够坚持自己读研梦的考生,可以说基本是今年真正的准考生了!在备考坚持这方面,其实每年很多考生走不到最后,比如在9-10月份全国研究生网上报名阶段,接近两成比例的考生…

geant4 常用代码

1 获取特特定能量范围的特定粒子 E:\examples_understanding\geant4-v11.0.0_note\examples\extended\runAndEvent\RE02 //-- Particle with kinetic energy filter.G4SDParticleWithEnergyFilter* pkinEFilter new G4SDParticleWithEnergyFilter(fltName"gammaE filter&…

招生大户!包邮区双非计算机强校计算机考研分析

杭州电子科技大学(B) 考研难度(☆☆) 内容:23考情概况(拟录取和复试分析)、院校概况、23初试科目、23复试详情、各专业考情分析、各科目考情分析。 正文1689字,多表,预计阅读:5分钟…

Python中小数据池知识最详细教程

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 话不多说,直接开搞,如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 一、id,is, 在Python中,id是什么? id是内存地址,比如你利用i…

centos升级python

升级为python3.10 yum updateyum install openssl-devel bzip2-devel libffi-develyum groupinstall "Development Tools"wget https://www.python.org/ftp/python/3.10.2/Python-3.10.2.tgztar -xzf Python-3.10.2.tgzcd Python-3.10.2./configure --enable-optimi…

JavaScript常见的运算符

一、运算符和运算元 1.认识运算符 在小学的时候我们就学习了各种运算符,比如加号 、乘号 *、减号 - 、除号/ 几乎所有的编程语言都有各种各样的运算符(也被称之为操作符,operators) 初次接触这些运算符, 你会感觉种类繁多, 难以记忆.但是并不需要特别…

Lora升级!ReLoRa!最新论文 High-Rank Training Through Low-Rank Updates

目录 摘要1 引言2 相关工作3 方法4 实验5 结果6 结论7 局限性和未来工作 关注公众号TechLead,分享AI与云服务技术的全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员&#xff0…

使用文本编辑器sublime text编写python代码

前言 上篇文章介绍了如何安装python程序,这次就讲讲如何用sublime来编写python代码 有的小伙伴可能会有疑问,为什么不选择pycharm来编写? pycharm写代码会有代码补全功能,而我们新手正是要在犯错误的过程中积累经验&#xff0c…

论文解读 | 新发现编码器PointPillars用于点云检测物体,更加高效且精准

原创 | 文 BFT机器人 01 技术背景 在过去的几年中,深度学习技术已经在图像领域的物体检测中取得了显著的进展,诸如目标检测算法(如Faster R-CNN、YOLO和SSD)在图像中能够高效准确地检测出物体。然而,当涉及到点云数据…

get√接口自动化核心知识点浓缩,为面试加分

日常接触到的接口自动化从实际目标可以划分为两大类: 1、为模拟测试数据而开展的接口自动化 这种接口自动化大多是单次执行,目的很明确是为了功能测试创造测试数据,节约人工造数据的时间和人工成本,提高功能测试人员的测试效率。…

《论文阅读18》JoKDNet

一、论文 研究领域:用于大尺度室外TLS点云配准的联合关键点检测和特征表达网络论文:JoKDNet: A joint keypoint detection and description network for large-scale outdoor TLS point clouds registration International Journal of Applied Earth Ob…

Java定时任务调用执行shell脚本实例

文章目录 Java代码1234 shell脚本 Java代码 1 2 3 4 shell脚本