std::mersenne_twister_engine<UIntType,w,n,m,r,a,u,d,s,b,t,c,l,f>::seed
Von cppreference.com
< cpp | numeric | random | mersenne twister engine
| 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.
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
Führen Sie diesen Code aus
#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