...世界上最受推崇和设计精良的 C++ 库项目之一。 — Herb Sutter 和 Andrei Alexandrescu,《C++ 编码规范
...世界上最受推崇和设计精良的 C++ 库项目之一。
boost::movelib::unique
// In header: <boost/move/algo/unique.hpp> template<typename ForwardIterator, typename BinaryPredicate> ForwardIterator unique(ForwardIterator first, ForwardIterator last, BinaryPredicate pred);
要求:比较函数必须是等价关系。*first 的类型必须满足 MoveAssignable 要求。
效果:对于非空范围,消除范围 [first + 1, last) 中每组连续等价元素,除了第一个元素之外,这些元素满足以下条件:pred(*(i - 1), *i) != false。
返回值:结果范围的结束位置。
复杂度:对于非空范围,谓词应用的次数恰好为 (last - first) - 1。