shuffle_order_engine Class
Generuje losowe kolejności wartości zwracane przez silnik bazowy.
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 silnika przechowywane.K
Parametr silnika K.
Uwagi
Zawiera opis tego szablonu klasy silnika mieszanek daje wartości kolejności wartości zwracane przez silnik bazowy.Każdy Konstruktor wypełnia tablicę stored_arr z K wartości zwracane przez silnik bazowy.Następnie są przechowywane w stored_y dodatkową wartość zwracana przez podstawowy aparat.Każdy element sekwencji wygenerowany zostanie uzyskane z stored_y, po którym:
Indeks tablicy J jest obliczana jako K * (stored_y - min()) / (max() - min() + 1).
stored_yzastępuje stored_arr[J].
stored_arr[j]zastępuje stored_eng().
Silnik Państwo jest Państwem stored_eng, a następnie K elementów stored_arr, a następnie stored_y.
Wartość argumentu szablon K musi być większa niż zero.
Wymagania
Nagłówek: <random>
Obszar nazw: std
Zobacz też
Informacje
shuffle_order_engine::base_type