thrust::shuffle_copy
Defined in thrust/shuffle.h
-
template<typename RandomIterator, typename OutputIterator, typename URBG>
void thrust::shuffle_copy(RandomIterator first, RandomIterator last, OutputIterator result, URBG &&g) shuffle_copy differs from shuffle only in that the reordered sequence is written to different output sequences, rather than in place.
shuffle_copy
reorders the elements[first, last)
by a uniform pseudorandom permutation, defined by random engineg
.The following code snippet demonstrates how to use
shuffle_copy
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}; int result[10]; const int N = sizeof(A)/sizeof(int); thrust::default_random_engine g; thrust::shuffle_copy(A, A + N, result, g); // result is now {6, 5, 8, 7, 2, 1, 4, 3, 10, 9}
See also
shuffle
- Parameters
first – The beginning of the sequence to shuffle.
last – The end of the sequence to shuffle.
result – Destination of shuffled sequence
g – A UniformRandomBitGenerator
- Template Parameters
RandomIterator – is a random access iterator
OutputIterator – is a model of Output Iterator.
URBG – is a uniform random bit generator