类属性算法unique的作用是从输入序列中“删除”所有相邻的重复元素。
该算法删除相邻的重复元素,然后重新排列输入范围内的元素,并且返回一个迭代器(容器的长度没变,只是元素顺序改变了),表示无重复的值范围得结束。
1 template <class ForwardIterator> 2 ForwardIterator unique (ForwardIterator first, ForwardIterator last) 3 { 4 if (first==last) return last; 5 6 ForwardIterator result = first; 7 while (++first != last) 8 { 9 if (!(*result == *first)) // or: if (!pred(*result,*first)) for version (2) 10 *(++result)=*first; 11 } 12 return ++result; 13 }