Difference between revisions of "cpp/numeric/random/shuffle order engine"
From cppreference.com
(+) |
Andreas Krug (Talk | contribs) m ({{c}}) |
||
(7 intermediate revisions by 4 users not shown) | |||
Line 2: | Line 2: | ||
{{cpp/numeric/random/shuffle_order_engine/navbar}} | {{cpp/numeric/random/shuffle_order_engine/navbar}} | ||
{{dcl begin}} | {{dcl begin}} | ||
− | {{dcl header | random}} | + | {{dcl header|random}} |
− | {{dcl | since=c++11 | | + | {{dcl|since=c++11| |
template< | template< | ||
− | class Engine, | + | class Engine, |
std::size_t K | std::size_t K | ||
> class shuffle_order_engine; | > class shuffle_order_engine; | ||
Line 11: | Line 11: | ||
{{dcl end}} | {{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 {{ | + | {{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 | + | The following typedef defines the random number engine with one commonly used parameter set: |
{{dsc begin}} | {{dsc begin}} | ||
− | {{dsc header | random}} | + | {{dsc header|random}} |
− | {{dsc hitem | Type | Definition}} | + | {{dsc hitem|Type|Definition}} |
− | {{dsc inc | cpp/numeric/random/dsc knuth_b}} | + | {{dsc inc|cpp/numeric/random/dsc knuth_b}} |
{{dsc end}} | {{dsc end}} | ||
===Template parameters=== | ===Template parameters=== | ||
{{par begin}} | {{par begin}} | ||
− | {{par | Engine | the type of the wrapped engine }} | + | {{par|Engine|the type of the wrapped engine}} |
− | {{par | K | the size of the internal table. Must be greater than {{math|0}} }} | + | {{par|K|the size of the internal table. Must be greater than {{math|0}}.}} |
{{par hreq}} | {{par hreq}} | ||
− | {{par req | + | {{par req named|Engine|RandomNumberEngine}} |
{{par end}} | {{par end}} | ||
===Member types=== | ===Member types=== | ||
{{dsc begin}} | {{dsc begin}} | ||
− | {{dsc hitem | Member type | Definition}} | + | {{dsc hitem|Member type|Definition}} |
− | {{dsc | {{tt|result_type}} | + | {{dsc|{{tt|result_type}} {{mark c++11}}|{{tt|Engine::result_type}}}} |
{{dsc end}} | {{dsc end}} | ||
===Member functions=== | ===Member functions=== | ||
{{dsc begin}} | {{dsc begin}} | ||
− | {{dsc inc | cpp/numeric/random/adaptor/dsc constructor |shuffle_order_engine}} | + | {{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 seed|shuffle_order_engine}} |
− | {{dsc inc | cpp/numeric/random/adaptor/dsc base |shuffle_order_engine}} | + | {{dsc inc|cpp/numeric/random/adaptor/dsc base|shuffle_order_engine}} |
− | {{dsc h2 | Generation}} | + | {{dsc h2|Generation}} |
− | {{dsc inc | cpp/numeric/random/adaptor/dsc operator() |shuffle_order_engine}} | + | {{dsc inc|cpp/numeric/random/adaptor/dsc operator()|shuffle_order_engine}} |
− | {{dsc inc | cpp/numeric/random/adaptor/dsc discard |shuffle_order_engine}} | + | {{dsc inc|cpp/numeric/random/adaptor/dsc discard|shuffle_order_engine}} |
− | {{dsc h2 | Characteristics}} | + | {{dsc h2|Characteristics}} |
− | {{dsc inc | cpp/numeric/random/adaptor/dsc min |shuffle_order_engine}} | + | {{dsc inc|cpp/numeric/random/adaptor/dsc min|shuffle_order_engine}} |
− | {{dsc inc | cpp/numeric/random/adaptor/dsc max |shuffle_order_engine}} | + | {{dsc inc|cpp/numeric/random/adaptor/dsc max|shuffle_order_engine}} |
{{dsc end}} | {{dsc end}} | ||
===Non-member functions=== | ===Non-member functions=== | ||
{{dsc begin}} | {{dsc begin}} | ||
− | {{dsc inc | cpp/numeric/random/adaptor/dsc operator_cmp |shuffle_order_engine}} | + | {{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 inc|cpp/numeric/random/adaptor/dsc operator_ltltgtgt|shuffle_order_engine}} |
{{dsc end}} | {{dsc end}} | ||
===Member objects=== | ===Member objects=== | ||
{{dsc begin}} | {{dsc begin}} | ||
− | {{dsc mem sconst | nolink=true | {{dsc small|constexpr size_t}} table_size | the size of the internal table, {{tt|K}} }} | + | {{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}} | {{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 |