thrust

◆ is_sorted_until() [4/4]

template<typename ForwardIterator , typename Compare >
ForwardIterator thrust::is_sorted_until ( ForwardIterator  first,
ForwardIterator  last,
Compare  comp 
)

This version of is_sorted_until returns the last iterator i in [first,last] for which the range [first,last) is sorted using the function object comp. If distance(first,last) < 2, is_sorted_until simply returns last.

Parameters
firstThe beginning of the range of interest.
lastThe end of the range of interest.
compThe function object to use for comparison.
Returns
The last iterator in the input range for which it is sorted.
Template Parameters
ForwardIteratoris a model of Forward Iterator and ForwardIterator's value_type is convertible to Compare's argument_type.
Compareis a model of Strict Weak Ordering.

The following code snippet demonstrates how to use is_sorted_until to find the first position in an array where the data becomes unsorted in descending order:

#include <thrust/sort.h>
...
int A[8] = {3, 2, 1, 0, 3, 2, 1, 0};
int * B = thrust::is_sorted_until(A, A + 8, comp);
// B - A is 4
// [A, B) is sorted in descending order
See also
is_sorted
sort
sort_by_key
stable_sort
stable_sort_by_key