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

来自cppreference.com

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

设置随机数引擎的状态

1) 状态设置完成时 *this == std::mersenne_twister_engine(value)true
2) 状态设置完成时 *this == std::mersenne_twister_engine(seq)true

参数

value-用于设置状态的种子值
seq-用于设置状态的种子序列

异常

2) 如果 SeedSeq 不是 std::seed_seq,那么就会抛出 seq.generate 调用抛出的异常。

复杂度

1)std::mersenne_twister_engine(value) 相同。
2)std::mersenne_twister_engine(seq) 相同。

缺陷报告

下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。

缺陷报告应用于出版时的行为正确行为
LWG 2181C++11即使 seq.generate 调用抛出了异常,重载 (2) 也不会抛出异常会传播该异常

参阅

构造引擎
(公开成员函数)

示例

#include <iostream>
#include <random>
 
int main()
{
    std::mt19937 gen;
 
    // 以一个 unsigned int 播种引擎
    gen.seed(1);
    std::cout << "以 1 播种后: " << gen() << '\n';
 
    // 以两个 unsigned int 播种引擎
    std::seed_seq sseq{1, 2};
    gen.seed(sseq);
    std::cout << "以 {1,2} 播种后: " << gen() << '\n';
}

可能的输出:

以 1 播种后: 1791095845
以 {1,2} 播种后: 3127717181