源于《挑战程序设计竞赛》第164页程序中调用的函数unique, 今天好好看看。
该函数std::unique位于头文件<algorithm>声明1如下:
template< class ForwardIt >
ForwardIt unique( ForwardIt first, ForwardIt last );
声明2如下:
template< class ForwardIt, class BinaryPredicate >
ForwardIt unique( ForwardIt first, ForwardIt last, BinaryPredicate p );
该函数的作用为: 删除[first, last)之间所有连续重复的元素, 只保留一个。 注意, 是连续重复。 要删除所有重复的元素, 只需要排序之后, 然后调用这个函数即可实现。 第一个版本通过==判断是否重复, 第二个版本通过二元谓词p判断是否重复。
二元谓词p, 就是binary predicate which returns