C++ named requirements: RandomNumberEngineAdaptor (since C++11)
From cppreference.net
一个 RandomNumberEngineAdaptor 是一种 RandomNumberEngine ,它通过转换另一个 RandomNumberEngine 的输出实现功能,后者被称为 基础引擎 。
要求
给定
- B ,一个 随机数引擎
- b ,类型为 B 的对象
- A ,一个 随机数引擎适配器 ,将 B 作为基础引擎进行适配
- a ,类型为 A 的对象
| 函数 | 语义 |
|---|---|
| A :: A ( ) ; | 基础引擎通过默认构造函数进行初始化。 |
| bool operator == ( const A & lhs, const A & rhs ) ; | 返回 lhs 的基础引擎是否与 rhs 的基础引擎相等。 |
| A :: A ( result_type s ) ; | 基础引擎通过 s 进行初始化。 |
| template < class Sseq > A :: A ( Sseq & q ) ; | 基础引擎通过 q 进行初始化。 |
| void seed ( ) ; | 调用 b. seed ( ) 。 |
| void seed ( result_type s ) ; | 调用 b. seed ( s ) 。 |
| template < class Sseq > void seed ( Sseq & q ) ; | 调用 b. seed ( q ) 。 |
此外
- A 各函数的复杂度不超过 B 对应函数的复杂度
- A 的状态包含 B 的状态
- A 状态的大小不小于 b 状态的大小
- 复制 A 的状态包含复制 B 的状态
- A 的文本表示包含 B 的文本表示
标准库
以下标准库设施满足 RandomNumberEngineAdaptor :
|
(C++11)
|
丢弃随机数引擎的部分输出
(类模板) |
|
(C++11)
|
将随机数引擎的输出打包成指定位数的块
(类模板) |
|
(C++11)
|
以不同顺序输出随机数引擎的结果
(类模板) |