Namensräume
Varianten
Aktionen

std::seed_seq

Von cppreference.com
< cpp‎ | numeric‎ | random
 
 
 
 
 
Definiert in Header <random>
class seed_seq;
(seit C++11)

std::seed_seq verarbeitet eine Sequenz von ganzzahligen Daten und erzeugt basierend auf diesen Daten eine angeforderte Anzahl von 32-Bit-Ganzzahlwerten. Die erzeugten Werte werden über den gesamten 32-Bit-Bereich verteilt, auch 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, wenn nur ein kleiner Seed oder eine schlecht verteilte initiale Seed-Sequenz zur Verfügung steht.

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

Inhalt

[bearbeiten] Verschachtelte Typen

Typ Definition
result_type std::uint_least32_t

[bearbeiten] Datenmember

Mitglied Beschreibung
std::vector<result_type> v die zugrunde liegende Seed-Sequenz
((exposition-only member object*)

[bearbeiten] Member-Funktionen

konstruiert und initialisiert das std::seed_seq-Objekt
(öffentliche Memberfunktion)
operator=
[gelöscht]
std::seed_seq ist nicht zuweisbar
(öffentliche Memberfunktion)
berechnet die bias-bereinigten, gleichmäßig verteilten 32-Bit-Werte
(öffentliche Memberfunktion)
erhält die Anzahl der gespeicherten 32-Bit-Werte
(öffentliche Memberfunktion)
kopiert alle gespeicherten 32-Bit-Werte
(öffentliche Memberfunktion)

[bearbeiten] 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