欢迎来到飞鸟慕鱼博客,开始您的技术之旅!
当前位置: 首页知识笔记正文

c++ vector容器的底层实现机制

墨初 知识笔记 157阅读

什么是 vector 容器?

答:STL 众多容器中,vector 是最常用的容器之一,其底层所采用的 数据结构 非常简单,就只是一段连续的线性内存空间。 ... 其中,_Myfirst 指向的是 vector 容器对象的起始字节位置;_Mylast 指向当前最后一个元素的末尾字节;_myend 指向整个 vector 容器所占用内存空间的末尾字节。

vector的底层结构是什么?

答:1. vector的底层 结构 vector底层 实际是泛型 的 动态类型顺序表,因此其 底层 实际是一段连续 的 空间。 在SGI-STL 的vector 中,实际在 底层 使用三个指针指向该段连续空间 的 ,如下: start指向空间 的

为什么 vector 容器在进行扩容后会失效?

答:这也就解释了,为什么 vector 容器在进行扩容后,与其相关的指针、引用以及迭代器可能会失效的原因。 由此可见,vector 扩容是非常耗时的。 为了降低再次分配内存空间时的成本,每次扩容时 vector 都会申请比用户需求量更多的内存空间(这也就是 vector 容量的由来,即 capacity>=size),以便后期使用。

声明:无特别说明,转载请标明本文来源!