Name
random_shuffle function template — Reorders a range into a random order
Synopsis
template<typename RandIter> void random_shuffle(RandIter first, RandIter last); template<typename RandIter, typename RandomNumberGenerator> void random_shuffle(RandIter first, RandIter last, RandomNumberGenerator& rand);
The random_shuffle
function
template changes the order of elements in the range [first
, last
) to a random order. The first form
uses an implementation-defined random number generator to produce a
uniform distribution. The second form calls rand
(n) to generate random numbers, in which
n is a positive value of type
iterator_traits<RandIter>::difference_type
.
The return value from rand
must
be convertible to the same difference_type
and be in the range [0,
n).
Technical Notes
Complexity is linear: exactly (last - first) + 1 swaps are performed.
See Also
swap function
template, rand
in <cstdlib>
Get C++ In a Nutshell now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.