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, 
   );
原文地址:https://www.cnblogs.com/freewater/p/2953678.html