operator<<,>>(std::mersenne_twister_engine)

来自cppreference.com
 
 
 
 
 
template< class CharT, class Traits >

friend std::basic_ostream<CharT,Traits>&
    operator<<( std::basic_ostream<CharT,Traits>& ost,

                const mersenne_twister_engine& e );
(1) (C++11 起)
template< class CharT, class Traits >

friend std::basic_istream<CharT,Traits>&
    operator>>( std::basic_istream<CharT,Traits>& ist,

                mersenne_twister_engine& e );
(2) (C++11 起)
1) 序列化伪随机数引擎 e 的内部状态为一或多个空格分隔的十进制数序列,并插入之到流 ost 。填充字符和格式化标志被忽略且无效。
2) 通过先前使用相同 locale 的本地环境、相同的 CharTTraits 的流对 operator<< 进行调用创建的序列化表示,还原伪随机数引擎 e 的内部状态。若不能反序列化输入,则保留 e 不改变并在 ist 上引发 failbit

这些函数模板对通常无限定有限定查找不可见,而只能在 std::mersenne_twister_engine<UIntType,w,n,m,r,a,u,d,s,b,t,c,l,f> 为参数的关联类时由实参依赖查找找到。

若用 os << x 写的文本表示,用 is >> y 还原到同类型的同一或不同对象 y ,则 x==y

以设置 os.fmtflagsios_base::dec|ios_base::left 并设置填充字符为空格符写文本表示。引擎内部状态的文本表示是一组空格分隔的十进制数。

参数

ost - 要插入数据的输出流
ist - 要提取数据的输入流
e - 伪随机数引擎

返回值

1) ost
2) ist

复杂度

异常

1) 可能会抛出由实现定义的异常。
2) 设置了 failbit 时可能抛出 std::ios_base::failure

缺陷报告

下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。

缺陷报告 应用于 出版时的行为 正确行为
LWG 3519 C++11 插入与提取运算符的形式未指定 指定为隐藏友元