std::mersenne_twister_engine<UIntType,w,n,m,r,a,u,d,s,b,t,c,l,f>::seed
来自cppreference.com
| |
(1) | (C++11 起) |
| (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 | 即使 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