Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. — Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

sort
PrevUpHomeNext
Prototype

template<class RandomAccessRange>
RandomAccessRange& sort(RandomAccessRange& rng);

template<class RandomAccessRange>
const RandomAccessRange& sort(const RandomAccessRange& rng);

template<class RandomAccessRange, class BinaryPredicate>
RandomAccessRange& sort(RandomAccessRange& rng, BinaryPredicate pred);

template<class RandomAccessRange, class BinaryPredicate>
const RandomAccessRange& sort(const RandomAccessRange& rng, BinaryPredicate pred);

Description

sort sorts the elements in rng into ascending order. sort is not guaranteed to be stable. Returns the sorted range.

For versions of the sort function without a predicate, ascending order is defined by operator<() such that for all adjacent elements [x,y], y < x == false.

For versions of the sort function with a predicate, ascending order is defined by pred such that for all adjacent elements [x,y], pred(y, x) == false.

Definition

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

Requirements

For versions of sort without a predicate:

  • 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 versions of sort with a predicate

  • 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.
Complexity

O(N log(N)) comparisons (both average and worst-case), where N is distance(rng).


PrevUpHomeNext