STL: unique
unique
Removes duplicate elements that are adjacent to each other in a specified range.
template<class ForwardIterator> ForwardIterator unique( ForwardIterator _First, ForwardIterator _Last ); template<class ForwardIterator, class Predicate> ForwardIterator unique( ForwardIterator _First, ForwardIterator _Last, Predicate _Comp );
注,List provides a more efficient member function unique, which may perform better.
These algorithms cannot be used on an associative container.
如果想要移除所有的(包括不相邻的)重复元素,必须先将序列排序,使所有重复元素相邻,然后使用unique.
unique_copy
Copies elements from a source range into a destination range except for the duplicate elements that are adjacent to each other.
template<class InputIterator, class OutputIterator> OutputIterator unique_copy( InputIterator _First, InputIterator _Last, OutputIterator _Result ); template<class InputIterator, class OutputIterator, class BinaryPredicate> OutputIterator unique_copy( InputIterator _First, InputIterator _Last, OutputIterator _Result, BinaryPredicate _Comp, );