Namensräume
Varianten
Aktionen

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

Von cppreference.com
 
 
 
 
 
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 Zufallszahlengine.

1) Direkt nach dem Setzen des Zustands ist *this == std::mersenne_twister_engine(value) true.
2) Direkt nach dem Setzen des Zustands ist *this == std::mersenne_twister_engine(seq) true.

Inhalt

[bearbeiten] Parameter

value - Startwert, der zum Setzen des Zustands verwendet wird
seq - Startwertsequenz, die zum Setzen des Zustands verwendet wird

[bearbeiten] Ausnahmen

2) Wenn SeedSeq nicht std::seed_seq ist, werden die von `seq.generate` ausgelösten Ausnahmen ausgelöst.

[bearbeiten] Komplexität

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

Defect reports

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

DR angewendet auf Verhalten wie veröffentlicht Korrigiertes Verhalten
LWG 2181 C++11 Überladung (2) würde auch dann keine Ausnahme auslösen, wenn der Aufruf von seq.generate eine Ausnahme auslöst leitet die Ausnahme weiter.

[bearbeiten] Siehe auch

konstruiert die Engine
(public member function) [[Bearbeiten]]

[bearbeiten] Beispiel

#include <iostream>
#include <random>
 
int main()
{
    std::mt19937 gen;
 
    // Seed the engine with an unsigned int
    gen.seed(1);
    std::cout << "after seed by 1: " << gen() << '\n';
 
    // Seed the engine with two unsigned ints
    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