0001 template <typename T> Rank Vector<T>::remove( Rank lo, Rank hi ) { //0 <= lo <= hi <= n 0002 if ( lo == hi ) return 0; //出于效率考虑,单独处理退化情况 0003 while ( hi < _size ) _elem[lo++] = _elem[hi++]; //后缀[hi, _size)顺次前移hi-lo位 0004 _size = lo; shrink(); //更新规模,lo=_size之后的内容无需清零;如必要,则缩容 0005 //若有必要,则缩容 0006 return hi - lo; //返回被删除元素的数目 0007 }