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 if (find(_elem[i], 0, i) < 0) //在前缀[0,i)中寻找与之雷同者(至多一个) 0006 i++; //若无雷同则继续考查其后继 0007 else 0008 remove(i); //否则删除当前元素 0009 return oldSize - _size; //被删除元素总数 0010 }