Namensräume
Varianten
Aktionen

std::experimental::shuffle

Von cppreference.com
 
 
 
 
Definiert im Header <experimental/algorithm>
template< class RandomIt >
void shuffle( RandomIt first, RandomIt last );
(Library Fundamentals TS v2)

Ordnet die Elemente im gegebenen Bereich [firstlast) 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

#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) [edit]