thrust

◆ generate_n() [1/2]

template<typename DerivedPolicy , typename OutputIterator , typename Size , typename Generator >
__host__ __device__ OutputIterator thrust::generate_n ( const thrust::detail::execution_policy_base< DerivedPolicy > &  exec,
OutputIterator  first,
Size  n,
Generator  gen 
)

generate_n assigns the result of invoking gen, a function object that takes no arguments, to each element in the range [first,first + n). The return value is first + n.

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

Parameters
execThe execution policy to use for parallelization.
firstThe first element in the range of interest.
nThe size of the range of interest.
genA function argument, taking no parameters, used to generate values to assign to elements in the range [first,first + n).
Template Parameters
DerivedPolicyThe name of the derived execution policy.
OutputIteratoris a model of Output Iterator.
Sizeis an integral type (either signed or unsigned).
Generatoris a model of Generator, and Generator's result_type is convertible to a type in OutputIterator's set of value_types.

The following code snippet demonstrates how to fill a host_vector with random numbers, using the standard C library function rand using the thrust::host execution policy for parallelization:

#include <cstdlib>
...
thrust::host_vector<int> v(10);
srand(13);
thrust::generate_n(thrust::host, v.begin(), 10, rand);
// the elements of v are now pseudo-random numbers
See also
generate
http://www.sgi.com/tech/stl/generate.html