shuffle_order_engine Class
Vygeneruje náhodné posloupnosti přeuspořádání hodnot vrácených z jeho základního motoru.
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;
};
Parametry
Engine
Typ motoru uložených.K
Parametr k motoru.
Poznámky
Popisuje šablony třídy složené motoru hodnoty, která vyvolává změnou uspořádání hodnoty vrácené základní motor.Pole vyplní každý konstruktoru stored_arr s K hodnoty vrácené základní motor.Jsou uloženy v stored_y další hodnotu vrácenou základního motoru.Každý prvek vygenerované posloupnosti pak získané z stored_y, po kterém:
Index pole J , je vypočítávána jako K * (stored_y - min()) / (max() - min() + 1).
stored_ynahrazuje stored_arr[J].
stored_arr[j]nahrazuje stored_eng().
Stav je stav stroje stored_enga K prvky stored_arra stored_y.
Hodnota argumentu šablony K musí být větší než nula.
Požadavky
Záhlaví: <random>
Obor názvů: std
Viz také
Referenční dokumentace
shuffle_order_engine::base_type