thrust::is_sorted
Defined in thrust/sort.h
-
template<typename DerivedPolicy, typename ForwardIterator, typename Compare>
bool thrust::is_sorted(const thrust::detail::execution_policy_base<DerivedPolicy> &exec, ForwardIterator first, ForwardIterator last, Compare comp) is_sorted
returnstrue
if the range[first, last)
is sorted in ascending order according to a user-defined comparison operation, andfalse
otherwise.Specifically, this version of
is_sorted
returnsfalse
if for some iteratori
in the range[first, last - 1)
the expressioncomp(*(i + 1), *i)
istrue
.The algorithm’s execution is parallelized as determined by
exec
.The following code snippet demonstrates how to use
is_sorted
to test whether the contents of adevice_vector
are stored in descending order using thethrust::device
execution policy for parallelization:#include <thrust/sort.h> #include <thrust/functional.h> #include <thrust/device_vector.h> #include <thrust/execution_policy.h> ... thrust::device_vector<int> v(6); v[0] = 1; v[1] = 4; v[2] = 2; v[3] = 8; v[4] = 5; v[5] = 7; thrust::greater<int> comp; bool result = thrust::is_sorted(thrust::device, v.begin(), v.end(), comp); // result == false thrust::sort(v.begin(), v.end(), comp); result = thrust::is_sorted(thrust::device, v.begin(), v.end(), comp); // result == true
See also
sort
See also
stable_sort
See also
less<T>
- Parameters
exec – The execution policy to use for parallelization.
first – The beginning of the sequence.
last – The end of the sequence.
comp – Comparison operator.
- Template Parameters
DerivedPolicy – The name of the derived execution policy.
ForwardIterator – is a model of Forward Iterator, and
ForwardIterator's
value_type
is convertible to bothStrictWeakOrdering's
first_argument_type
andsecond_argument_type
.Compare – is a model of Strict Weak Ordering.
- Returns
true
, if the sequence is sorted according to comp;false
, otherwise.