0001 template <typename T> //单元素插入 0002 void Vector<T>::insert(Rank r, const T& e) //0 <= r <= _size 0003 { insert(r, &e, 0, 1); } //insert, O(n+1-r) 0004 0005 template <typename T> //T为基本类型,或已重载赋值操作符'=';S <> this 0006 void Vector<T>::insert(Rank r, const T* A, Rank lo, Rank hi) { //将A[lo,hi)插至[r] 0007 Rank d = hi-lo; expand(d); //若必要,先扩容:确保足以新增d个元素 0008 for (Rank i = _size-1; i != r-1; i--) //长度为n-r的后缀:自后向前地后移 0009 _elem[i + d] = _elem[i]; //O(n-r) 0010 copy(r, A, lo, hi); _size += d; //插入d个元素,O(d) 0011 } //insert, O(n+d-r)