std::seed_seq
来自 cppreference.com
定义在头文件 <random> 中 |
||
class seed_seq; |
(自 C++11 起) | |
std::seed_seq
使用一系列整数数据并生成请求数量的无符号整数 i
,0 ≤ i < 232
,基于已使用的数据。生成的数值在整个 32 位范围内分布,即使使用的数据非常接近。
它提供了一种方法来为大量随机数引擎播种,或在给定一个小的种子或一个分布不均的初始种子序列的情况下为需要大量熵的生成器播种。
std::seed_seq
满足 SeedSequence 的要求。
[编辑] 成员类型
成员类型 | 定义 |
result_type (C++11) |
std::uint_least32_t |
[编辑] 成员函数
(C++11) |
构造并为 std::seed_seq 对象播种 (公共成员函数) |
operator= [已删除] (C++11) |
seed_seq 不可赋值(公共成员函数) |
(C++11) |
计算无偏差的均匀分布的 32 位数值 (公共成员函数) |
(C++11) |
获取存储在 std::seed_seq 中的 32 位数值的数量 (公共成员函数) |
(C++11) |
获取存储在 std::seed_seq 中的 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