主要讲讲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个。
备用空间小于新增元素个数时……
原文:https://www.cnblogs.com/zouma/p/13942567.html