![]() |
Home | Libraries | People | FAQ | More |
template<class RandomAccessRange> RandomAccessRange& partial_sort( RandomAccessRange& rng, typename range_iterator<RandomAccessRange>::type middle); template<class RandomAccessRange> const RandomAccessRange& partial_sort( const RandomAccessRange& rng, typename range_iterator<const RandomAccessRange>::type middle); template<class RandomAccessRange> RandomAccessRange& partial_sort( RandomAccessRange& rng, typename range_iterator<RandomAccessRange>::type middle, BinaryPredicate sort_pred); template<class RandomAccessRange> const RandomAccessRange& partial_sort( const RandomAccessRange& rng, typename range_iterator<const RandomAccessRange>::type middle, BinaryPredicate sort_pred);
partial_sort rearranges
the elements in rng.
It places the smallest distance(begin(rng), middle) elements, sorted in ascending order,
into the range [begin(rng), middle). The remaining elements are placed in
an unspecified order into [middle, last).
The non-predicative versions of this function specify that one element
is less than another by using operator<(). The predicate versions use the
predicate instead.
Defined in the header file boost/range/algorithm/partial_sort.hpp
For the non-predicate version:
RandomAccessRange
is a model of the Random
Access Range Concept.
RandomAccessRange
is mutable.
RandomAccessRange's
value type is a model of the LessThanComparableConcept.
RandomAccessRange's
value type is a strict weak ordering,
as defined in the LessThanComparableConcept
requirements.
For the predicate version:
RandomAccessRange
is a model of the Random
Access Range Concept.
RandomAccessRange
is mutable.
BinaryPredicate is
a model of the StrictWeakOrderingConcept.
RandomAccessRange's
value type is convertible to both of BinaryPredicate's
argument types.
Approximately distance(rng) * log(distance(begin(rng), middle)) comparisons.