Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/numeric/random/shuffle order engine"

From cppreference.com
< cpp‎ | numeric‎ | random
(+)
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|K}} and delivers a randomly selected number from that table when requested, replacing it with a number generated by the base engine.
+
{{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 typedefs define the random number engine with two commonly used parameter sets:
+
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 concept | Engine | RandomNumberEngine}}
+
{{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}} | {{c|typename Engine::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}}
  
[[de:cpp/numeric/random/shuffle order engine]]
+
===Example===
[[es:cpp/numeric/random/shuffle order engine]]
+
{{example}}
[[fr:cpp/numeric/random/shuffle order engine]]
+
 
[[it:cpp/numeric/random/shuffle order engine]]
+
{{langlinks|de|es|fr|it|ja|pt|ru|zh}}
[[ja:cpp/numeric/random/shuffle order engine]]
+
[[pt:cpp/numeric/random/shuffle order engine]]
+
[[ru:cpp/numeric/random/shuffle order engine]]
+
[[zh:cpp/numeric/random/shuffle order engine]]
+

Latest revision as of 23:27, 5 May 2023

 
 
 
 
 
Defined in header <random>
template<

    class Engine,
    std::size_t K

> class shuffle_order_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>[edit]

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

constructs the engine adaptor
(public member function) [edit]
(C++11)
sets the state of the underlying engine
(public member function) [edit]
(C++11)
returns the underlying engine
(public member function) [edit]
Generation
advances the state of the underlying engine and returns the generated value
(public member function) [edit]
(C++11)
advances the adaptor's state by a specified amount
(public member function) [edit]
Characteristics
[static] (C++11)
gets the smallest possible value in the output range of the underlying engine.
(public static member function) [edit]
[static] (C++11)
gets the largest possible value in the output range of the underlying engine.
(public static member function) [edit]

[edit] Non-member functions

(C++11)(C++11)(removed in C++20)
compares the internal states of the adaptors and underlying engines
(function) [edit]
performs stream input and output on pseudo-random number engine adaptor
(function) [edit]

[edit] Member objects

constexpr size_t table_size
[static] (C++11)
the size of the internal table, K
(public static member constant)

[edit] Example