0001 template <typename T> int Vector<T>::remove ( Rank lo, Rank hi ) { //删除区间[lo, hi) 0002 if ( lo == hi ) return 0; //出于效率考虑,单独处理退化情况,比如remove(0, 0) 0003 while ( hi < _size ) _elem[lo++] = _elem[hi++]; //[hi, _size)顺次前移hi - lo个单元 0004 _size = lo; //更新规模,直接丢弃尾部[lo, _size = hi)区间 0005 shrink(); //若有必要,则缩容 0006 return hi - lo; //返回被删除元素的数目 0007 }