mersenne_twister_engine() : mersenne_twister_engine(default_seed) {} | (1) | (since C++11) |
explicit mersenne_twister_engine( result_type value ); | (2) | (since C++11) |
template< class Sseq > explicit mersenne_twister_engine( Sseq& s ); | (3) | (since C++11) |
mersenne_twister_engine( const mersenne_twister_engine& ); | (4) | (since C++11) (implicitly declared) |
Constructs the pseudo-random number engine.
default_seed
.n
values Xresult_type
) as follows: value mod 2ws.generate(a, a+n*k)
where a is an array of length n*k and k is ceil(w/32) and then, iteratively for i=-n,...,-1, setting each element of the engine state XNote: initialization requirements are based on the 2002 version of Mersenne Twister, mt19937ar.c.
The overload (3) only participates in overload resolution if Sseq
qualifies as a SeedSequence. In particular, it is excluded from the set of candidate functions if Sseq
is convertible to result_type
.
value | - | seed value to use in the initialization of the internal state |
s | - | seed sequence to use in the initialization of the internal state |
Linear in n
(the state size).
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR | Applied to | Behavior as published | Correct behavior |
---|---|---|---|
P0935R0 | C++11 | default constructor was explicit | made implicit |
(C++11) | sets the current state of the engine (public member function) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/numeric/random/mersenne_twister_engine/mersenne_twister_engine