thrust::shuffle_copy
Defined in thrust/shuffle.h
- 
template<typename DerivedPolicy, typename RandomIterator, typename OutputIterator, typename URBG>
 void thrust::shuffle_copy(const thrust::detail::execution_policy_base<DerivedPolicy> &exec, 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_copyreorders the elements- [first, last)by a uniform pseudorandom permutation, defined by random engine- g.- The algorithm’s execution is parallelized as determined by - exec.- The following code snippet demonstrates how to use - shuffle_copyto create a random permutation.- #include <thrust/shuffle.h> #include <thrust/random.h> #include <thrust/execution_policy.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(thrust::host, A, A + N, result, g); // result is now {6, 5, 8, 7, 2, 1, 4, 3, 10, 9} - See also - shuffle- Parameters
- exec – The execution policy to use for parallelization. 
- 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
- DerivedPolicy – The name of the derived execution policy. 
- RandomIterator – is a random access iterator 
- OutputIterator – is a model of Output Iterator. 
- URBG – is a uniform random bit generator