Namespaces
Variants

std::mersenne_twister_engine<UIntType,w,n,m,r,a,u,d,s,b,t,c,l,f>:: seed

From cppreference.net

void seed ( result_type value = default_seed ) ;
(1) (seit C++11)
template < class SeedSeq >
void seed ( SeedSeq & seq ) ;
(2) (seit C++11)

Setzt den Zustand der Zufallszahlen-Engine.

1) Unmittelbar nachdem der Zustand gesetzt wurde, * this == std:: mersenne_twister_engine ( value ) ist true .
2) Unmittelbar nachdem der Zustand gesetzt wurde, * this == std:: mersenne_twister_engine ( seq ) ist true .

Inhaltsverzeichnis

Parameter

value - Startwert zur Initialisierung des Zustands
seq - Startsequenz zur Initialisierung des Zustands

Ausnahmen

2) Wenn SeedSeq kein std::seed_seq ist, werden die Ausnahmen ausgelöst, die durch den seq.generate -Aufruf geworfen werden.

Komplexität

1) Gleich wie std:: mersenne_twister_engine ( value ) .
2) Gleich wie std:: mersenne_twister_engine ( seq ) .

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
LWG 2181 C++11 Überladung ( 2 ) würde nicht werfen, selbst wenn der seq.generate Aufruf wirft leitet die Exception weiter

Siehe auch

Konstruiert die Engine
(öffentliche Member-Funktion)

Beispiel

#include <iostream>
#include <random>
int main()
{
    std::mt19937 gen;
    // Den Engine mit einem unsigned int seeden
    gen.seed(1);
    std::cout << "after seed by 1: " << gen() << '\n';
    // Den Engine mit zwei unsigned ints seeden
    std::seed_seq sseq{1, 2};
    gen.seed(sseq);
    std::cout << "after seed by {1,2}: " << gen() << '\n';
}

Mögliche Ausgabe:

after seed by 1: 1791095845
after seed by {1,2}: 3127717181