0001 template <typename T> void Vector<T>::dedup() { //更紧凑地实现向量去重 0002 for (Rank k = 0, i; k < _size; ) { //自前向后逐个考查每个元素[k]——从k=1开始亦可 0003 for (i = 0; _elem[i] != _elem[k]; i++); //直接查找([k]天然就是哨兵) 0004 if (i < k) { //若存在相等的[i],则删除之,(i,n)前移一个单位 0005 while (++i < _size) 0006 _elem[i-1] = _elem[i]; 0007 _size--; 0008 } else //否则,直接转向下一元素 0009 k++; 0010 } //for 0011 } //dedup: O(n^2)