thrust::unique_count

Defined in thrust/unique.h

template<typename ForwardIterator, typename BinaryPredicate>
thrust::iterator_traits<ForwardIterator>::difference_type thrust::unique_count(ForwardIterator first, ForwardIterator last, BinaryPredicate binary_pred)

unique_count counts runs of equal elements in the range [first, last) with the same value,

This version of unique_count uses the function object binary_pred to test for equality.

The following code snippet demonstrates how to use unique_count to determine the number of runs of equal elements:

#include <thrust/unique.h>
#include <thrust/execution_policy.h>
...
const int N = 7;
int A[N] = {1, 3, 3, 3, 2, 2, 1};
int count = thrust::unique_count(A, A + N, thrust::equal_to<int>());
// count is now 4

See also

unique_copy

See also

unique_by_key_copy

See also

reduce_by_key_copy

Parameters
  • exec – The execution policy to use for parallelization.

  • first – The beginning of the input range.

  • last – The end of the input range.

  • binary_pred – The binary predicate used to determine equality.

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 BinaryPredicate's first_argument_type and to BinaryPredicate's second_argument_type.

  • BinaryPredicate – is a model of Binary Predicate.

Returns

The number of runs of equal elements in [first, new_last)