Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext
partial_sort
Prototype

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);

Description

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.

Definition

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

Requirements

For the non-predicate version:

For the predicate version:

Complexity

Approximately distance(rng) * log(distance(begin(rng), middle)) comparisons.


PrevUpHomeNext