std::seed_seq
来自cppreference.com
<tbody>
</tbody>
| 在标头 <random> 定义
|
||
class seed_seq; |
(C++11 起) | |
std::seed_seq 消耗一系列整数值数据,并基于消耗的数据生成请求数量的 32 位无符号整数值。产生的值分布在整个 32 位值域上,即使消耗的值接近也是如此。
它提供了一种以给定小种子或分布凄惨的初始种子序列,播种大量随机数引擎或播种要求大量熵的随机数的方法。
std::seed_seq 满足种子序列 (SeedSequence) 的要求。
嵌套类型
| 类型 | 定义 |
result_type
|
std::uint_least32_t |
数据成员
| 成员 | 描述 |
std::vector<result_type> v
|
底层种子序列 (仅用于阐述的成员对象*) |
成员函数
构造并播种 std::seed_seq 对象 (公开成员函数) | |
operator= [deleted] |
std::seed_seq 不可赋值 (公开成员函数) |
| 计算消除偏差的均匀分布的 32 位值 (公开成员函数) | |
| 获得存储的 32 位值的数量 (公开成员函数) | |
| 复制所有存储的 32 位值 (公开成员函数) |
示例
运行此代码
#include <cstdint>
#include <iostream>
#include <random>
int main()
{
std::seed_seq seq{1, 2, 3, 4, 5};
std::vector<std::uint32_t> seeds(10);
seq.generate(seeds.begin(), seeds.end());
for (std::uint32_t n : seeds)
std::cout << n << '\n';
}
可能的输出:
4204997637
4246533866
1856049002
1129615051
690460811
1075771511
46783058
3904109078
1534123438
1495905678