1 甄别器
template <typename T> int Vector<T> :: disordered() const{
int n=0;
for(int n=1;i<_size;i++)
if(_elem[i-1]>_elem[i]) n++; //逆序则计数
return n; //向量有序当且仅当n=0;
2 唯一化
(一) 同无序向量的处理方式
这种方式在存在多个连续相同的数列的时候,对于所有的remove()操作将达到
(二)
template <typename T> int Vector<T> :: uniquify(){
int i=0,j=0;
while(++j<_size)
if(_elem[i]!=_elem[j]) // 跳过雷同者
_elem[++i]=_elem[j]; //发现不同元素时,向前移至紧邻于前者右侧
_size=++i; shrink();
return j-i; //向量规模变化量,被删除元素的总数
}
时间复杂度为