0001 template <typename T> void Vector<T>::expand(Rank d) { //扩容 0002 if (_size + d < _capa) return; //若足以新增d个元素,则无需扩容 0003 T* oldElem = _elem; //记下原数据区 0004 _capa = (_size + d) * 2; //容量加倍:本次插入之后,装填因子=50% 0005 _elem = new T[_capa]; //分配新空间(末尾依然预留一个哨兵) 0006 copy(0, oldElem, 0, _size); //转移数据 0007 delete[] oldElem; //释放原数据区 0008 } //expand