std::experimental:: shuffle
From cppreference.net
<
cpp
|
experimental
|
Definiert im Header
<experimental/algorithm>
|
||
|
template
<
class
RandomIt
>
void shuffle ( RandomIt first, RandomIt last ) ; |
(Library Fundamentals TS v2) | |
Ordnet die Elemente im angegebenen Bereich
[
first
,
last
)
so um, dass jede mögliche Permutation dieser Elemente die gleiche Wahrscheinlichkeit des Auftretens hat, wobei die
pro-Thread-Zufallszahlen-Engine
als Zufallszahlengenerator verwendet wird.
Inhaltsverzeichnis |
Parameter
| first, last | - | der Bereich der Elemente, die zufällig gemischt werden sollen |
-
RandomIt
muss die Anforderungen von
ValueSwappable
und
LegacyRandomAccessIterator
erfüllen.
|
||
Rückgabewert
(keine)
Komplexität
Linear in der Entfernung zwischen first und last .
Beispiel
Diesen Code ausführen
#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'; } }
Mögliche Ausgabe:
DACBFE CDFBAE BDCAFE BAFCED
Siehe auch
|
(bis C++17)
(C++11)
|
ordnet Elemente in einem Bereich zufällig neu an
(Funktions-Template) |