跳到主要内容

C++ 命名要求
RandomNumberEngineAdaptor (自 C++11 起)

一个 RandomNumberEngineAdaptor 是一个 RandomNumberEngine,它转换另一个 RandomNumberEngine 的输出,后者被称为基础引擎。

要求

给定

  • B,一个 RandomNumberEngine
  • b,一个类型为 B 的对象
  • A,一个 RandomNumberEngineAdaptor,以 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

pubdiscard_block_engine(C++11)丢弃随机数引擎的一些输出
pubindependent_bits_engine(C++11)将随机数引擎的输出打包成指定位数的数据块
pubshuffle_order_engine(C++11)以不同顺序提供随机数引擎的输出

C++ 命名要求
RandomNumberEngineAdaptor (自 C++11 起)

一个 RandomNumberEngineAdaptor 是一个 RandomNumberEngine,它转换另一个 RandomNumberEngine 的输出,后者被称为基础引擎。

要求

给定

  • B,一个 RandomNumberEngine
  • b,一个类型为 B 的对象
  • A,一个 RandomNumberEngineAdaptor,以 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

pubdiscard_block_engine(C++11)丢弃随机数引擎的一些输出
pubindependent_bits_engine(C++11)将随机数引擎的输出打包成指定位数的数据块
pubshuffle_order_engine(C++11)以不同顺序提供随机数引擎的输出