find_if_not#

Overloads#

find_if_not(exec, first, last, pred)#

template<typename DerivedPolicy, typename InputIterator, typename Predicate>
InputIterator thrust::find_if_not(
const thrust::detail::execution_policy_base<DerivedPolicy> &exec,
InputIterator first,
InputIterator last,
Predicate pred,
)#

find_if_not returns the first iterator i in the range [first, last) such that pred(*i) is false or last if no such iterator exists.

The algorithm’s execution is parallelized as determined by exec.

 #include <thrust/find.h>
 #include <thrust/device_vector.h>
 #include <thrust/execution_policy.h>
 ...

 struct greater_than_four
 {
   __host__ __device__
   bool operator()(int x)
   {
     return x > 4;
   }
 };

 struct greater_than_ten
 {
   __host__ __device__
   bool operator()(int x)
   {
     return x > 10;
   }
 };

 ...
 thrust::device_vector<int> input(4);

 input[0] = 0;
 input[1] = 5;
 input[2] = 3;
 input[3] = 7;

 thrust::device_vector<int>::iterator iter;

 iter = thrust::find_if_not(thrust::device, input.begin(), input.end(), greater_than_four()); // returns
input.first()

 iter = thrust::find_if_not(thrust::device, input.begin(), input.end(), greater_than_ten());  // returns
input.first() 

See also

find

See also

find_if

See also

mismatch

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

  • first – Beginning of the sequence to search.

  • last – End of the sequence to search.

  • pred – A predicate used to test range elements.

Template Parameters:
  • DerivedPolicy – The name of the derived execution policy.

  • InputIterator – is a model of Input Iterator.

  • Predicate – is a model of Predicate.

Returns:

The first iterator i such that pred(*i) is false, or last.

find_if_not(first, last, pred)#

template<typename InputIterator, typename Predicate>
InputIterator thrust::find_if_not(
InputIterator first,
InputIterator last,
Predicate pred,
)#

find_if_not returns the first iterator i in the range [first, last) such that pred(*i) is false or last if no such iterator exists.

#include <thrust/find.h>
#include <thrust/device_vector.h>

struct greater_than_four
{
  __host__ __device__
  bool operator()(int x)
  {
    return x > 4;
  }
};

struct greater_than_ten
{
  __host__ __device__
  bool operator()(int x)
  {
    return x > 10;
  }
};

...
thrust::device_vector<int> input(4);

input[0] = 0;
input[1] = 5;
input[2] = 3;
input[3] = 7;

thrust::device_vector<int>::iterator iter;

iter = thrust::find_if_not(input.begin(), input.end(), greater_than_four()); // returns input.first()

iter = thrust::find_if_not(input.begin(), input.end(), greater_than_ten());  // returns input.first()

See also

find

See also

find_if

See also

mismatch

Parameters:
  • first – Beginning of the sequence to search.

  • last – End of the sequence to search.

  • pred – A predicate used to test range elements.

Template Parameters:
Returns:

The first iterator i such that pred(*i) is false, or last.