![]() |
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.