std::seed_seq

来自cppreference.com
< cpp‎ | numeric‎ | random
 
 
 
 
 
在标头 <random> 定义
class seed_seq;
(C++11 起)

std::seed_seq 消耗一系列整数值数据,并基于消耗的数据生成请求数量的 32 位无符号整数值。产生的值分布在整个 32 位值域上,即使消耗的值接近也是如此。

它提供了一种以给定小种子或分布凄惨的初始种子序列,播种大量随机数引擎或播种要求大量熵的随机数的方法。

std::seed_seq 满足种子序列(SeedSequence) 的要求。

目录

[编辑]嵌套类型

类型 定义
result_typestd::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
close