Difference between revisions of "cpp/numeric/random/shuffle order engine"
From cppreference.com
m (Text replace - "{{tdcl" to "{{dcl") |
Andreas Krug (Talk | contribs) m ({{c}}) |
||
(17 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
{{cpp/title|shuffle_order_engine}} | {{cpp/title|shuffle_order_engine}} | ||
− | {{cpp/numeric/random/shuffle_order_engine/ | + | {{cpp/numeric/random/shuffle_order_engine/navbar}} |
− | {{ | + | {{dcl begin}} |
+ | {{dcl header|random}} | ||
+ | {{dcl|since=c++11| | ||
template< | template< | ||
− | class Engine, | + | class Engine, |
− | size_t | + | std::size_t K |
> class shuffle_order_engine; | > class shuffle_order_engine; | ||
}} | }} | ||
+ | {{dcl end}} | ||
− | {{ | + | {{tt|shuffle_order_engine}} is a random number engine adaptor that shuffles the random numbers generated by the base engine. It maintains a table of size {{c|K}} and delivers a randomly selected number from that table when requested, replacing it with a number generated by the base engine. |
− | + | The following typedef defines the random number engine with one commonly used parameter set: | |
− | {{ | + | {{dsc begin}} |
− | {{ | + | {{dsc header|random}} |
− | {{ | + | {{dsc hitem|Type|Definition}} |
− | {{ | + | {{dsc inc|cpp/numeric/random/dsc knuth_b}} |
+ | {{dsc end}} | ||
− | === | + | ===Template parameters=== |
− | {{ | + | {{par begin}} |
− | {{ | + | {{par|Engine|the type of the wrapped engine}} |
− | {{ | + | {{par|K|the size of the internal table. Must be greater than {{math|0}}.}} |
+ | {{par hreq}} | ||
+ | {{par req named|Engine|RandomNumberEngine}} | ||
+ | {{par end}} | ||
+ | |||
+ | ===Member types=== | ||
+ | {{dsc begin}} | ||
+ | {{dsc hitem|Member type|Definition}} | ||
+ | {{dsc|{{tt|result_type}} {{mark c++11}}|{{tt|Engine::result_type}}}} | ||
+ | {{dsc end}} | ||
===Member functions=== | ===Member functions=== | ||
− | {{ | + | {{dsc begin}} |
− | {{ | + | {{dsc inc|cpp/numeric/random/adaptor/dsc constructor|shuffle_order_engine}} |
− | {{ | + | {{dsc inc|cpp/numeric/random/adaptor/dsc seed|shuffle_order_engine}} |
− | {{ | + | {{dsc inc|cpp/numeric/random/adaptor/dsc base|shuffle_order_engine}} |
− | {{ | + | {{dsc h2|Generation}} |
− | {{ | + | {{dsc inc|cpp/numeric/random/adaptor/dsc operator()|shuffle_order_engine}} |
− | {{ | + | {{dsc inc|cpp/numeric/random/adaptor/dsc discard|shuffle_order_engine}} |
− | {{ | + | {{dsc h2|Characteristics}} |
− | {{ | + | {{dsc inc|cpp/numeric/random/adaptor/dsc min|shuffle_order_engine}} |
− | {{ | + | {{dsc inc|cpp/numeric/random/adaptor/dsc max|shuffle_order_engine}} |
− | {{ | + | {{dsc end}} |
===Non-member functions=== | ===Non-member functions=== | ||
− | {{ | + | {{dsc begin}} |
− | {{ | + | {{dsc inc|cpp/numeric/random/adaptor/dsc operator_cmp|shuffle_order_engine}} |
− | {{ | + | {{dsc inc|cpp/numeric/random/adaptor/dsc operator_ltltgtgt|shuffle_order_engine}} |
− | {{ | + | {{dsc end}} |
+ | |||
+ | ===Member objects=== | ||
+ | {{dsc begin}} | ||
+ | {{dsc mem sconst|nolink=true|{{dsc small|constexpr size_t}} table_size|the size of the internal table, {{tt|K}}|notes={{mark c++11}}}} | ||
+ | {{dsc end}} | ||
+ | |||
+ | ===Example=== | ||
+ | {{example}} | ||
+ | |||
+ | {{langlinks|de|es|fr|it|ja|pt|ru|zh}} |
Latest revision as of 23:27, 5 May 2023
Defined in header <random>
|
||
template< class Engine, |
(since C++11) | |
shuffle_order_engine
is a random number engine adaptor that shuffles the random numbers generated by the base engine. It maintains a table of size K and delivers a randomly selected number from that table when requested, replacing it with a number generated by the base engine.
The following typedef defines the random number engine with one commonly used parameter set:
Defined in header
<random> | |
Type | Definition |
knuth_b (C++11)
|
std::shuffle_order_engine<std::minstd_rand0, 256> |
Contents |
[edit] Template parameters
Engine | - | the type of the wrapped engine |
K | - | the size of the internal table. Must be greater than 0. |
Type requirements | ||
-Engine must meet the requirements of RandomNumberEngine.
|
[edit] Member types
Member type | Definition |
result_type (C++11)
|
Engine::result_type
|
[edit] Member functions
(C++11) |
constructs the engine adaptor (public member function) |
(C++11) |
sets the state of the underlying engine (public member function) |
(C++11) |
returns the underlying engine (public member function) |
Generation | |
(C++11) |
advances the state of the underlying engine and returns the generated value (public member function) |
(C++11) |
advances the adaptor's state by a specified amount (public member function) |
Characteristics | |
[static] (C++11) |
gets the smallest possible value in the output range of the underlying engine. (public static member function) |
[static] (C++11) |
gets the largest possible value in the output range of the underlying engine. (public static member function) |
[edit] Non-member functions
(C++11)(C++11)(removed in C++20) |
compares the internal states of the adaptors and underlying engines (function) |
(C++11) |
performs stream input and output on pseudo-random number engine adaptor (function) |
[edit] Member objects
constexpr size_t table_size [static] (C++11) |
the size of the internal table, K (public static member constant) |
[edit] Example
This section is incomplete Reason: no example |