《STL源码剖析》 第四章 序列式容器 之 vector

主要讲讲vector 中的 push_back,insert_aux,insert

push_back分备用空间够不够两种情况,够的情况不说了,不够的情况依赖于insert_aux。

insert_aux可以处理备用空间够和不够两种情况,够的情况下在finish处构造一个*(finish-1)的元素,finish++,copy_backward(position,finish-2,finish-1); *position=x_copy;

不够的情况下len:0->1;x->2*x; 移动[start,position)过去,添加insert元素,移动[position,finish)过去。

 

insert:备用空间大于等于 新增元素个数时,移动末尾n个,移动position开始的几个,再position开始插入n个。

备用空间小于新增元素个数时……

posted @ 2020-11-07 21:49  czhWellOptimized  阅读(103)  评论(0)    收藏  举报