Template Function thrust::stable_sort(RandomAccessIterator, RandomAccessIterator, StrictWeakOrdering)¶
Function Documentation¶
-
template<typename
RandomAccessIterator, typenameStrictWeakOrdering>
voidthrust::stable_sort(RandomAccessIterator first, RandomAccessIterator last, StrictWeakOrdering comp) stable_sortis much likesort:it sorts the elements in[first, last)into ascending order, meaning that ifiandjare any two valid iterators in[first, last)such thatiprecedesj, then*jis not less than*i.As the name suggests,
stable_sortis stable: it preserves the relative ordering of equivalent elements. That is, ifxandyare elements in[first, last)such thatxprecedesy, and if the two elements are equivalent (neitherx < ynory < x) then a postcondition ofstable_sortis thatxstill precedesy.This version of
stable_sortcompares objects using a function objectcomp.The following code demonstrates how to sort integers in descending order using the greater<int> comparison operator.
- Parameters
first: The beginning of the sequence.last: The end of the sequence.comp: Comparison operator.
- Template Parameters
RandomAccessIterator: is a model of Random Access Iterator,RandomAccessIteratoris mutable, andRandomAccessIterator'svalue_typeis convertible toStrictWeakOrdering'sfirst_argument_typeandsecond_argument_type.StrictWeakOrdering: is a model of Strict Weak Ordering.
#include <thrust/sort.h> #include <thrust/functional.h> ... const int N = 6; int A[N] = {1, 4, 2, 8, 5, 7}; thrust::sort(A, A + N, thrust::greater<int>()); // A is now {8, 7, 5, 4, 2, 1};
- See
- See
sort- See
stable_sort_by_key