Udostępnij za pośrednictwem


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

<random>

shuffle_order_engine::base

shuffle_order_engine::base_type

shuffle_order_engine::discard

shuffle_order_engine::operator()

shuffle_order_engine::seed

shuffle_order_engine::shuffle_order_engine