Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext
unique
Prototype

template<class ForwardRange>
typename range_return<ForwardRange, return_begin_found>::type
unique(ForwardRange& rng);

template<class ForwardRange>
typename range_return<const ForwardRange, return_begin_found>::type
unique(const ForwardRange& rng);

template<class ForwardRange, class BinaryPredicate>
typename range_return<ForwardRange, return_begin_found>::type
unique(ForwardRange& rng, BinaryPredicate pred);

template<class ForwardRange, class BinaryPredicate>
typename range_return<const ForwardRange, return_begin_found>::type
unique(const ForwardRange& rng, BinaryPredicate pred);

template<range_return_value re, class ForwardRange>
typename range_return<ForwardRange, re>::type
unique(ForwardRange& rng);

template<range_return_value re, class ForwardRange>
typename range_return<const ForwardRange, re>::type
unique(const ForwardRange& rng);

template<range_return_value re, class ForwardRange, class BinaryPredicate>
typename range_return<ForwardRange, re>::type
unique(ForwardRange& rng, BinaryPredicate pred);

template<range_return_value re, class ForwardRange, class BinaryPredicate>
typename range_return<const ForwardRange, re>::type
unique(const ForwardRange& rng, BinaryPredicate pred);

Description

unique removes all but the first element of each sequence of duplicate encountered in rng.

Elements in the range [new_last, end(rng)) are dereferenceable but undefined.

Equality is determined by the predicate if one is supplied, or by operator==() for ForwardRange's value type.

Definition

Defined in the header file boost/range/algorithm/unique.hpp

Requirements

For the non-predicate versions of unique:

For the predicate versions of unique:

Complexity

Linear. O(N) where N is distance(rng). Exactly distance(rng) comparisons are performed.


PrevUpHomeNext