Thrust

◆ unique_count() [3/4]

template<typename ForwardIterator , typename BinaryPredicate >
__host__ __device__ 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.

Parameters
execThe execution policy to use for parallelization.
firstThe beginning of the input range.
lastThe end of the input range.
binary_predThe binary predicate used to determine equality.
Returns
The number of runs of equal elements in [first, new_last)
Template Parameters
DerivedPolicyThe name of the derived execution policy.
ForwardIteratoris 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.
BinaryPredicateis a model of Binary Predicate.

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

#include <thrust/unique.h>
...
const int N = 7;
int A[N] = {1, 3, 3, 3, 2, 2, 1};
// count is now 4
See also
unique_copy
unique_by_key_copy
reduce_by_key_copy