Namespaces
Variants

C++ named requirements: RandomNumberEngineAdaptor (since C++11)

From cppreference.net
C++ named requirements

一个 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

丢弃随机数引擎的部分输出
(类模板)
将随机数引擎的输出打包成指定位数的块
(类模板)
以不同顺序输出随机数引擎的结果
(类模板)