STL源码-vector

2019年4月15日 0 条评论 128 次阅读 0 人点赞

完整代码见: LiTianxiong/Standard-Template-Library

vector

vector是最常用的序列式容器之一, 这份简单的vector实现只是实现了一些基本的方法, 迭代器也是直接使用了指针

vector内部使用一块连续的内存空间来存储数据, 当容量不足时, 将会申请一块大小为max(原来大小的两倍, 所需要的空间大小)的一块新空间, 然后将原来元素移动到新的空间内, 将原来的空间析构并释放

vector中, 复制和填充内容时, 用到了copy, filluninitial_copy/fill等函数, 其中对于已经构造过的内存区域, 直接使用copyfill函数, 而对于没有初始化过的内存区域, 则使用unintial_xx函数进行对象的构造, unitial_xx函数能够根据对象的类型, 来选择效率最高的构造方式(对于pod类型, 直接复制内存, 对于非pod类型, 则调用构造函数)

litmxs

这个人太懒什么东西都没留下

文章评论(0)