C++ vector(STL vector)底层实现机制(通俗易懂)

  • 内容
  • 评论
  • 相关

STL 众多容器中,vector 是最常用的容器之一,其底层所采用的数据结构非常简单,就只是一段连续的线性内存空间。

通过分析 vector 容器的源代码不难发现,它就是使用 3 个迭代器(可以理解成指针)来表示的:

//_Alloc 表示内存分配器,此参数几乎不需要我们关心
template <class _Ty, class _Alloc = allocator<_Ty>>
class vector{
    ...
protected:
    pointer _Myfirst;
    pointer _Mylast;
    pointer _Myend;
};

其中,_Myfirst 指向的是 vector 容器对象的起始字节位置;_Mylast 指向当前最后一个元素的末尾字节;_myend 指向整个 vector 容器所占用内存空间的末尾字节。

图 1 演示了以上这 3 个迭代器分别指向的位置。



图 1 vector实现原理示意图

本文标题:C++ vector(STL vector)底层实现机制(通俗易懂)

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

评论

0条评论

发表评论

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