Thrust

◆ shuffle() [2/2]

template<typename RandomIterator , typename URBG >
__host__ __device__ void thrust::shuffle ( RandomIterator  first,
RandomIterator  last,
URBG &&  g 
)

shuffle reorders the elements [first, last) by a uniform pseudorandom permutation, defined by random engine g.

Parameters
firstThe beginning of the sequence to shuffle.
lastThe end of the sequence to shuffle.
gA UniformRandomBitGenerator
Template Parameters
RandomIteratoris a random access iterator
URBGis a uniform random bit generator

The following code snippet demonstrates how to use shuffle to create a random permutation.

#include <thrust/shuffle.h>
#include <thrust/random.h>
int A[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
const int N = sizeof(A)/sizeof(int);
thrust::shuffle(A, A + N, g);
// A is now {6, 5, 8, 7, 2, 1, 4, 3, 10, 9}
See also
shuffle_copy