shuffle_order_engine Class
Genera una sequenza casuale riordinando i valori restituiti dal motore di base.
template<class Engine,
size_t K>
class shuffle_order_engine {
public:
typedef Engine base_type;
typedef typename base_type::result_type result_type;
static constexpr size_t table_size = K;
shuffle_order_engine();
explicit shuffle_order_engine(const base_type& eng);
explicit shuffle_order_engine(result_type x0);
explicit shuffle_order_engine(seed_seq& seq);
void seed();
void seed(result_type x0);
void seed(seed_seq& seq);
const base_type& base() const;
static constexpr result_type min();
static constexpr result_type max();
result_type operator()();
void discard(unsigned long long count);
private:
Engine stored_eng;
result_type stored_arr[K];
result_type stored_y;
};
Parametri
Engine
Il tipo archiviato il motore.K
Il parametro del motore K.
Note
Questa classe modello viene descritto modulo composta che produce valori riordinando i valori restituiti nel motore di base.Ogni costruttore soddisfa la matrice stored_arr di valori K restituiti dal motore di base.Quindi archiviare in stored_y che un ulteriore valore restituito dal motore di base.Ogni elemento della sequenza generata viene ottenuto da stored_y, sarà:
L'indice J di matrice viene calcolato come K * (stored_y - min()) / (max() - min() + 1).
stored_y viene sostituito da stored_arr[J].
stored_arr[j] viene sostituito da stored_eng().
Lo stato del motore è lo stato stored_eng, seguiti dagli elementi Kstored_arr, seguiti da stored_y.
Il valore dell'argomento di modello K deve essere maggiore di zero.
Requisiti
intestazione: <random>
Spazio dei nomi: deviazione standard
Vedere anche
Riferimenti
shuffle_order_engine::base_type