公共成员函数
<random>

std::seed_seq::seed_seq

(1)
seed_seq();
(2)
template<class T>  seed_seq (initializer_list<T> il);
(3)
template<class InputIterator>  seed_seq (InputIterator first, InputIterator last);
种子序列构造函数
构造一个 seed_seq 对象,并将其内部序列初始化为一个序列,该序列具有与由其初始化参数定义的序列相同数量的元素(对于默认构造函数,则为零)。

然后,它将这些值复制到内部序列中,该序列由至少 32 位的元素组成。在标准中seed_seq类(具有 uint_least32_t 类型的元素),初始化参数中的每个元素对应于内部序列中的一个元素:不匹配的大小通过零填充或相应地修剪传递的值来调整。

参数

il
一个 initializer_list 对象,包含整数类型的元素。
这些对象是从初始化列表声明符自动构造的。
T应为整数类型。
first, last
指向范围内初始位置和最终位置的输入迭代器。 使用的范围是[first,last),它包括firstlast之间的所有元素,包括first指向的元素,但不包括last指向的元素。
函数模板类型可以是任何类型的 输入迭代器,该迭代器指向整数类型的元素。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// seed_seq constructor
#include <iostream>
#include <random>
#include <string>
#include <array>

int main ()
{

  std::seed_seq seed1;

  std::seed_seq seed2 = {102,406,7892};

  std::string foo = "Seeding a RNG";
  std::seed_seq seed3 (foo.begin(),foo.end());

  std::cout << "generating a sequence of 5 elements:" << std::endl;
  std::array<unsigned,5> sequence;
  seed3.generate(sequence.begin(),sequence.end());
  for (unsigned x:sequence) {std::cout << x << std::endl;}

  return 0;
}

可能的输出
generating a sequence of 5 elements:
3115361211
4052619055
1473326094
3552077780
2602119476


复杂度

与序列大小呈线性关系。

另见