std::experimental:: shuffle
From cppreference.net
<
cpp
|
experimental
|
Определено в заголовочном файле
<experimental/algorithm>
|
||
|
template
<
class
RandomIt
>
void shuffle ( RandomIt first, RandomIt last ) ; |
(TS библиотеки фундаментальных компонентов v2) | |
Переупорядочивает элементы в заданном диапазоне
[
first
,
last
)
таким образом, что каждая возможная перестановка этих элементов имеет равную вероятность появления, используя
поточно-ориентированный генератор случайных чисел
в качестве генератора случайных чисел.
Содержание |
Параметры
| first, last | - | диапазон элементов для случайного перемешивания |
-
RandomIt
должен соответствовать требованиям
ValueSwappable
и
LegacyRandomAccessIterator
.
|
||
Возвращаемое значение
(нет)
Сложность
Линейно по расстоянию между first и last .
Пример
Запустить этот код
#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'; } }
Возможный вывод:
DACBFE CDFBAE BDCAFE BAFCED
Смотрите также
|
(until C++17)
(C++11)
|
случайным образом переупорядочивает элементы в диапазоне
(шаблон функции) |