thrust::generate

Defined in thrust/generate.h

template<typename ForwardIterator, typename Generator>
void thrust::generate(ForwardIterator first, ForwardIterator last, Generator gen)

generate assigns the result of invoking gen, a function object that takes no arguments, to each element in the range [first,last).

The following code snippet demonstrates how to fill a host_vector with random numbers, using the standard C library function rand.

#include <thrust/generate.h>
#include <thrust/host_vector.h>
#include <thrust/execution_policy.h>
#include <cstdlib>
...
thrust::host_vector<int> v(10);
srand(13);
thrust::generate(v.begin(), v.end(), rand);

// the elements of v are now pseudo-random numbers

See also

generate_n

Parameters
  • first – The first element in the range of interest.

  • last – The last element in the range of interest.

  • gen – A function argument, taking no parameters, used to generate values to assign to elements in the range [first,last).

Template Parameters
  • ForwardIterator – is a model of Forward Iterator, and ForwardIterator is mutable.

  • Generator – is a model of Generator, and Generator's result_type is convertible to ForwardIterator's value_type.