std::experimental:: shuffle
From cppreference.net
<
cpp
|
experimental
|
Défini dans l'en-tête
<experimental/algorithm>
|
||
|
template
<
class
RandomIt
>
void shuffle ( RandomIt first, RandomIt last ) ; |
(library fundamentals TS v2) | |
Réordonne les éléments dans la plage donnée
[
first
,
last
)
de telle sorte que chaque permutation possible de ces éléments ait une probabilité égale d'apparition, en utilisant le
moteur de nombres aléatoires par thread
comme générateur de nombres aléatoires.
Table des matières |
Paramètres
| first, last | - | la plage d'éléments à mélanger aléatoirement |
-
RandomIt
doit satisfaire aux exigences de
ValueSwappable
et
LegacyRandomAccessIterator
.
|
||
Valeur de retour
(aucun)
Complexité
Linéaire en fonction de la distance entre first et last .
Exemple
Exécuter ce 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'; } }
Sortie possible :
DACBFE CDFBAE BDCAFE BAFCED
Voir aussi
|
(jusqu'en C++17)
(C++11)
|
réorganise aléatoirement les éléments dans une plage
(modèle de fonction) |