thrust::unique_count

Defined in thrust/unique.h

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

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

This version of unique_count uses operator== 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(thrust::host, A, A + N);
// count is now 4

See also

unique_copy

See also

unique_by_key_copy

See also

reduce_by_key_copy

Parameters
  • 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
  • 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)