公共成員函式
<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


複雜度

與序列大小呈線性關係。

另見