Namespaces
Variants

std:: seed_seq

From cppreference.net
Definiert im Header <random>
class seed_seq ;
(seit C++11)

std::seed_seq verarbeitet eine Sequenz von ganzzahligen Daten und erzeugt eine angeforderte Anzahl von 32-Bit-Ganzzahlen ohne Vorzeichen, basierend auf den verarbeiteten Daten. Die erzeugten Werte sind über den gesamten 32-Bit-Bereich verteilt, selbst wenn die verarbeiteten Werte nahe beieinander liegen.

Es bietet eine Möglichkeit, eine große Anzahl von Zufallszahlengeneratoren zu initialisieren oder einen Generator zu initialisieren, der viel Entropie benötigt, mit einem kleinen Seed oder einer schlecht verteilten anfänglichen Seed-Sequenz.

std::seed_seq erfüllt die Anforderungen eines SeedSequence .

Inhaltsverzeichnis

Verschachtelte Typen

Typ Definition
result_type std::uint_least32_t

Datenmitglieder

Mitglied Beschreibung
std:: vector < result_type > v Die zugrundeliegende Seed-Sequenz
( Nur zur Veranschaulichung (exposition-only member object*) )

Memberfunktionen

konstruiert und initialisiert das std::seed_seq Objekt
(öffentliche Elementfunktion)
operator=
[deleted]
std::seed_seq ist nicht zuweisbar
(öffentliche Elementfunktion)
berechnet die bias-eliminierten, gleichmäßig verteilten 32-Bit-Werte
(öffentliche Elementfunktion)
ermittelt die Anzahl der gespeicherten 32-Bit-Werte
(öffentliche Elementfunktion)
kopiert alle gespeicherten 32-Bit-Werte
(öffentliche Elementfunktion)

Beispiel

#include <cstdint>
#include <iostream>
#include <random>
int main()
{
    std::seed_seq seq{1, 2, 3, 4, 5};
    std::vector<std::uint32_t> seeds(10);
    seq.generate(seeds.begin(), seeds.end());
    for (std::uint32_t n : seeds)
        std::cout << n << '\n';
}

Mögliche Ausgabe:

4204997637
4246533866
1856049002
1129615051
690460811
1075771511
46783058
3904109078
1534123438
1495905678