Namespaces
Variants

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

From cppreference.net

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 2181 C++11 重载版本 ( 2 ) 即使 seq.generate 调用抛出异常也不会抛出 传播该异常

另请参阅

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

示例

#include <iostream>
#include <random>
int main()
{
    std::mt19937 gen;
    // 使用无符号整数初始化引擎
    gen.seed(1);
    std::cout << "after seed by 1: " << gen() << '\n';
    // 使用两个无符号整数初始化引擎
    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