名稱空間
變體
操作

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

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

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

                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>& is,

                mersenne_twister_engine& e );
(2) (C++11 起)
1) 以 fmtflags 設定為 std::ios_base::dec | std::ios_base::left,填充字元設定為 空格字元,將 e 的當前狀態的文字表示寫入 os
寫入後,os 的原始 fmtflags 和填充字元將被恢復。
2)is 讀取引擎狀態的文字表示(表示為 text),其 fmtflags 設定為 std::ios_base::dec,並將 e 的狀態設定為該狀態。
讀取後,is 的原始 fmtflags 將被恢復。
  • 如果 text 之前未使用輸出流 pr 寫入,則行為未定義。
  • 否則,如果以下任何一個值為 false,則行為未定義:
  • is.getloc() == pr.getloc()
  • std::is_same<decltype(is)::char_type,
                 decltype(pr)::char_type>::value
  • std::is_same<decltype(is)::traits_type,
                 decltype(pr)::traits_type>::value
  • 否則,如果 text 不是 decltype(e) 任何狀態的有效文字表示,則 e 的狀態不變,並呼叫 is.setstate(std::ios_base::failbit)
  • 否則,給定另一個與 e 型別相同的引擎 eng。如果 text 之前由 pr << eng 寫入,並且在 pr << engis >> e 之間沒有對 eeng 的干預呼叫,則 e == engtrue

這些函式模板對於普通的非限定限定查詢不可見,只能透過實參依賴查詢decltype(e) 是引數的關聯類時找到。

目錄

[編輯] 引數

os - 要插入資料的輸出流
is - 用於提取資料的輸入流
e - 偽隨機數引擎

[編輯] 返回值

1) os
2) is

[編輯] 複雜度

1,2) O(n)

[編輯] 異常

2) 設定 std::ios_base::failbit 時可能丟擲 std::ios_base::failure

缺陷報告

下列更改行為的缺陷報告追溯地應用於以前出版的 C++ 標準。

缺陷報告 應用於 釋出時的行為 正確的行為
LWG 3519 C++11 插入和提取運算子的形式未指定 指定為隱藏友元