std::mersenne_twister_engine<UIntType,w,n,m,r,a,u,d,s,b,t,c,l,f>::seed - cppreference.com (original) (raw)

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

Sets the state of the random-number engine.

[edit] Parameters

value - seed value to use to set the state
seq - seed sequence to use to set the state

[edit] Exceptions

  1. If SeedSeq is not std::seed_seq, throws the exceptions thrown by the seq.generate call.

[edit] Complexity

Defect reports

The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

DR Applied to Behavior as published Correct behavior
LWG 2181 C++11 overload (2) would not throw even if the seq.generate call throws propagates the exception

[edit] See also

[edit] Example

#include #include   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'; }

Possible output:

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