命名空间
变体
操作

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

来自 cppreference.cn
 
 
 
 
 
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++ 标准。

DR 应用于 发布时的行为 正确的行为
LWG 2181 C++11 重载 (2) 即使 seq.generate 调用抛出异常也不会抛出 传播异常

[编辑] 参见

构造引擎
(公有成员函数) [编辑]

[编辑] 示例

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

可能的输出

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