C++ STL deque容器底层实现原理(深度剖析)

  • 内容
  • 评论
  • 相关

事实上,STL 中每个容器的特性,和它底层的实现机制密切相关,deque 自然也不例外。《C++ STL deque容器》一节中提到,deque 容器擅长在序列的头部和尾部添加或删除元素。本节将介绍 deque 容器的底层实现机制,探究其拥有此特点的原因。

想搞清楚 deque 容器的实现机制,需要先了解 deque 容器的存储结构以及 deque 容器迭代器的实现原理。

deque容器的存储结构

和 vector 容器采用连续的线性空间不同,deque 容器存储数据的空间是由一段一段等长的连续空间构成,各段空间之间并不一定是连续的,可以位于在内存的不同区域。

为了管理这些连续空间,deque 容器用数组(数组名假设为 map)存储着各个连续空间的首地址。也就是说,map 数组中存储的都是指针,指向那些真正用来存储数据的各个连续空间(如图 1 所示)。

deque容器的底层存储机制
图 1 deque容器的底层存储机制

本文标题:C++ STL deque容器底层实现原理(深度剖析)

本文地址:https://www.hosteonscn.com/7623.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注