std::experimental::shuffle
Von cppreference.com
< cpp | experimental
| Definiert im Header <experimental/algorithm> |
||
| template< class RandomIt > void shuffle( RandomIt first, RandomIt last ); |
(Library Fundamentals TS v2) | |
Ordnet die Elemente im gegebenen Bereich [first, last) so an, dass jede mögliche Permutation dieser Elemente mit gleicher Wahrscheinlichkeit auftritt, unter Verwendung der pro-Thread-Zufallszahlengenerator-Engine als Zufallszahlengenerator.
Inhalt |
[bearbeiten] Parameter
| first, last | - | Der Bereich der Elemente, die zufällig gemischt werden sollen |
-RandomIt muss die Anforderungen von ValueSwappable und LegacyRandomAccessIterator erfüllen. | ||
[bearbeiten] Rückgabewert
(keine)
[bearbeiten] Komplexität
Linear zur Distanz zwischen first und last.
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#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
[bearbeiten] Siehe auch
| (bis C++17)(C++11) |
Ordnet Elemente in einem Bereich zufällig neu an (Funktionstemplate) |