公共成员函数
<random>

std::subtract_with_carry_engine::seed

(1)
void seed (result_type val = default_seed);
(2)
template <class Sseq>void seed (Sseq& q);
播种引擎
重新初始化内部状态序列为伪随机值,可以使用线性同余引擎生成器(它本身用val播种),或者使用种子序列对象(q)(其值被转换)。

参数

val
一个播种值。 整个状态序列从此值生成,使用线性同余引擎对象。
result_type是一个成员类型,定义为第一个类模板参数的别名 (UIntType).
default_seed是一个成员常量,定义为5489u.
q
一个种子序列对象,例如seed_seq类型的对象。
Sseq应为具有generate成员函数的种子序列类。

返回值



示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
// mersenne_twister_engine::seed example
#include <iostream>
#include <chrono>
#include <random>

int main ()
{
  typedef std::chrono::high_resolution_clock myclock;
  myclock::time_point beginning = myclock::now();

  // obtain a seed from a user string:
  std::string str;
  std::cout << "Please, enter a seed: ";
  std::getline(std::cin,str);
  std::seed_seq seed1 (str.begin(),str.end());

  // obtain a seed from the timer
  myclock::duration d = myclock::now() - beginning;
  unsigned seed2 = d.count();

  std::mt19937 generator (seed1);   // mt19937 is a standard mersenne_twister_engine
  std::cout << "Your seed produced: " << generator() << std::endl;

  generator.seed (seed2);
  std::cout << "A time seed produced: " << generator() << std::endl;

  return 0;
}

可能的输出
Please, enter a seed: Marsaglia
Your seed produced: 15090552
A time seed produced: 16301539


复杂度

线性于long_lag.

另见