0001 template <typename T> int Vector<T>::deduplicate() { //删除无序向量中重复元素(高效版) 0002 int oldSize = _size; //记录原规模 0003 Rank i = 1; //从_elem[1]开始 0004 while ( i < _size ) //自前向后逐一考查各元素_elem[i] 0005 ( find ( _elem[i], 0, i ) < 0 ) ? //在其前缀中寻找与之雷同者(至多一个) 0006 i++ : remove ( i ); //若无雷同则继续考查其后继,否则删除雷同者 0007 return oldSize - _size; //向量规模变化量,即被删除元素总数 0008 }