std::seed_seq::seed_seq

< cpp‎ | numeric‎ | random‎ | seed seq
 
 
数值库
常用数学函数
数学特殊函数 (C++17)
数学常数 (C++20)
浮点环境 (C++11)
复数
数值数组
伪随机数生成
编译时有理数算术 (C++11)
数值算法
(C++17)
(C++17)
插值
(C++20)
(C++20)
通用数值运算
(C++11)
位操作
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
 
 
 
seed_seq();
(1) (C++11 起)
seed_seq( const seed_seq& ) = delete;
(2) (C++11 起)
template< class InputIt >
seed_seq( InputIt begin, InputIt end );
(3) (C++11 起)
template< class T >
seed_seq( std::initializer_list<T> il );
(4) (C++11 起)
1) 默认构造函数创建拥有零长度初始种子序列的 std::seed_seq 对象。
2) 复制构造函数被删除: std::seed_seq 不可复制。
3) 构造 std::seed_seq ,以拥有从范围 [begin, end) 上迭代并以解引用迭代器复制值获得的值 modulo 232
(即复制低 32 位)为初始种子序列。
4) 等价于 seed_seq(il.begin(), il.end()) 。此构造函数启用列表初始化

参数

begin, end - 初始种子序列,表示为一对 std::iterator_traits<>::value_type 为整数类型的输入迭代器
il - 整数类型对象的 std::initializer_list ,提供初始种子序列
类型要求
-
InputIt 必须满足遗留输入迭代器 (LegacyInputIterator) 的要求。

异常

1) 不抛出

示例

#include <random>
#include <sstream>
#include <iterator>
int main()
{
    std::seed_seq s1; // 可默认构造
    std::seed_seq s2{1, 2, 3}; // 能用列表初始化
    std::seed_seq s3 = {-1, 0, 1}; // 列表初始化的另一种形式
    int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    std::seed_seq s4(a, a + 10); // 能用迭代器
    std::istringstream buf("1 2 3 4 5"); 
    std::istream_iterator<int> beg(buf), end;
    std::seed_seq s5(beg, end); // 即使是流输入迭代器
}