std::experimental:: shuffle
From cppreference.net
<
cpp
|
experimental
|
Definido en el encabezado
<experimental/algorithm>
|
||
|
template
<
class
RandomIt
>
void shuffle ( RandomIt first, RandomIt last ) ; |
(library fundamentals TS v2) | |
Reordena los elementos en el rango dado
[
first
,
last
)
de tal forma que cada posible permutación de esos elementos tenga igual probabilidad de aparición, utilizando el
motor de números aleatorios por hilo
como generador de números aleatorios.
Contenidos |
Parámetros
| first, last | - | el rango de elementos a barajar aleatoriamente |
-
RandomIt
debe cumplir con los requisitos de
ValueSwappable
y
LegacyRandomAccessIterator
.
|
||
Valor de retorno
(ninguno)
Complejidad
Lineal en la distancia entre first y last .
Ejemplo
Ejecutar este código
#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'; } }
Salida posible:
DACBFE CDFBAE BDCAFE BAFCED
Véase también
|
(until C++17)
(C++11)
|
reordena aleatoriamente elementos en un rango
(function template) |