table of contents
std::experimental::shuffle(3) | C++ Standard Libary | std::experimental::shuffle(3) |
NAME¶
std::experimental::shuffle - std::experimental::shuffle
Synopsis¶
Defined in header <experimental/algorithm>
template< class RandomIt > (library fundamentals TS v2)
void shuffle( RandomIt first, RandomIt last );
Reorders the elements in the given range [first, last) such that each
possible
permutation of those elements has equal probability of appearance, using the
per-thread random number engine as the random number generator.
Parameters¶
first, last - the range of elements to shuffle randomly
-
RandomIt must meet the requirements of ValueSwappable and
LegacyRandomAccessIterator.
Return value¶
(none)
Complexity¶
Linear in the distance between first and last.
Example¶
// Run this code
#include <experimental/algorithm>
#include <iostream>
#include <string>
int main()
{
std::string sample{"ABCDEF"};
for (int i = 0; i != 4; ++i)
{
std::experimental::shuffle(sample.begin(), sample.end());
std::cout << sample << '\n';
}
}
Possible output:¶
DACBFE
CDFBAE
BDCAFE
BAFCED
See also¶
random_shuffle
shuffle randomly re-orders elements in a range
(until C++17) (function template)
(C++11)
2024.06.10 | http://cppreference.com |