0


C++ deque底层原理

deque底层原理

一、目的

实现双端数组

二、底层实现

双向开口的连续线性空间

三、原理图

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

标签: c++

本文转载自: https://blog.csdn.net/qq_40135848/article/details/132579402
版权归原作者 苍天饶过谁? 所有, 如有侵权,请联系我们删除。

“C++ deque底层原理”的评论:

还没有评论