![]() |
Home | Libraries | People | FAQ | More |
template<class RandomAccessRange> RandomAccessRange& stable_sort(RandomAccessRange& rng); template<class RandomAccessRange> const RandomAccessRange& stable_sort(const RandomAccessRange& rng); template<class RandomAccessRange, class BinaryPredicate> RandomAccessRange& stable_sort(RandomAccessRange& rng, BinaryPredicate pred); template<class RandomAccessRange, class BinaryPredicate> const RandomAccessRange& stable_sort(const RandomAccessRange& rng, BinaryPredicate pred);
stable_sort sorts the
elements in rng into
ascending order. stable_sort
is guaranteed to be stable. The order is preserved for equivalent elements.
For versions of the stable_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 stable_sort
function with a predicate, ascending order is designed by pred such that for all adjacent elements
[x,y], pred(y,x) == false.
Defined in the header file boost/range/algorithm/stable_sort.hpp
For versions of stable_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.
RandomAccessRange's
value type is a strict weak ordering,
as defined in the LessThanComparableConcept
requirements.
For versions of stable_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.
Best case: O(N)
where N is distance(rng).
Worst case: O(N log(N)^2)
comparisons, where N
is distance(rng).