operator<<,>>(std::mersenne_twister_engine)
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) Записывает текстовое представление текущего состояния
e в os с установленным fmtflags, равным std::ios_base::dec | std::ios_base::left, и символом заполнения, равным пробелу.
После записи исходные fmtflags и символ заполнения
os восстанавливаются.
2) Считывает текстовое представление состояния движка из
После чтения исходные fmtflags is (обозначенного как text) с установленным fmtflags, равным std::ios_base::dec, и задаёт для e это состояние.is восстанавливаются. - Если
textранее не записывался с помощью выходного потокаpr, поведение не определено. - В противном случае, если любое из следующих значений является
false, поведение не определено: is.getloc() == pr.getloc()std::is_same<decltype(is)::char_type,decltype(pr)::char_type>::valuestd::is_same<decltype(is)::traits_type,decltype(pr)::traits_type>::value- В противном случае, если
textне является допустимым текстовым представлением какого-либо состояния decltype(e), состояниеeне изменяется, а вызываетсяis.setstate(std::ios_base::failbit). - В противном случае пусть имеется другой движок
engтого же типа, что иe. Еслиtextранее был записан посредствомpr << engи междуpr << engиis >> eне было вызововeилиeng, тоe == engявляетсяtrue.
Эти шаблоны функций не видны при обычном неквалифицированном поиске или квалифицированном поиске и могут быть найдены только с помощью поиска, зависящего от аргументов, когда decltype(e) является ассоциированным классом аргументов.
Параметры
| os | - | выходной поток для вставки данных |
| is | - | входной поток для извлечения данных |
| e | - | движок генерации псевдослучайных чисел |
Возвращаемое значение
1)
os
2)
is
Сложность
1,2) \(\scriptsize O(n) \)O(n).
Исключения
Отчёты об ошибках
Следующие отчёты об ошибках, изменяющие поведение, были применены задним числом к ранее опубликованным стандартам C++.
| Отчёт об ошибке | Применён к | Опубликованное поведение | Корректное поведение |
|---|---|---|---|
| LWG 3519 | C++11 | форма операторов вставки и извлечения не была указана | уточнено, что это скрытые дружественные функции |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/numeric/random/mersenne_twister_engine/operator_ltltgtgt