| [section:nth_element nth_element] |
| |
| [heading Prototype] |
| |
| `` |
| template<class RandomAccessRange> |
| RandomAccessRange& nth_element( |
| RandomAccessRange& rng, |
| typename range_iterator<RandomAccessRange>::type nth); |
| |
| template<class RandomAccessRange> |
| const RandomAccessRange& nth_element( |
| const RandomAccessRange& rng, |
| typename range_iterator<const RandomAccessRange>::type nth); |
| |
| template<class RandomAccessRange> |
| RandomAccessRange& nth_element( |
| RandomAccessRange& rng, |
| typename range_iterator<RandomAccessRange>::type nth, |
| BinaryPredicate sort_pred); |
| |
| template<class RandomAccessRange> |
| const RandomAccessRange& nth_element( |
| const RandomAccessRange& rng, |
| typename range_iterator<const RandomAccessRange>::type nth, |
| BinaryPredicate sort_pred); |
| `` |
| |
| [heading Description] |
| |
| `nth_element` partially orders a range of elements. `nth_element` arranges the range `rng` such that the element corresponding with the iterator `nth` is the same as the element that would be in that position if `rng` has been sorted. |
| |
| |
| [heading Definition] |
| |
| Defined in the header file `boost/range/algorithm/nth_element.hpp` |
| |
| [heading Requirements] |
| |
| [*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`. |
| * The ordering relation on `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. |
| |
| |
| [heading Complexity] |
| |
| On average, linear in `distance(rng)`. |
| |
| [endsect] |
| |
| |