Freigeben über


shuffle_order_engine Class

Generiert eine zufällige Sequenz durch das Neuanordnen der Werte, die von ihrem niedrigen Modul zurückgegeben werden.

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;
    };

Parameter

  • Engine
    Der gespeicherte Motortyp.

  • K
    Der K-Modulparameter.

Hinweise

Diese Vorlagenklasse beschreibt Verbundmodul, die - Werte erzeugt, indem die Werte neu angeordnet werden, die durch das Modul niedriges zurückgegeben werden.Jeder Konstruktor füllt das Array stored_arr mit K-Werte aus, die von der Basisklasse des Modul zurückgegeben werden.Anschließend wird in stored_y, das ein Mehrwert durch das niedrige Modul zurückgegeben hat.Jedes Element der generierten Sequenz wird dann von stored_y, nachdem abrufen:

  • Der Arrayindex J wird als K * (stored_y - min()) / (max() - min() + 1) abgeleitet.

  • stored_y wird durch stored_arr[J] ersetzt.

  • stored_arr[j] wird durch stored_eng() ersetzt.

Der Zustand des Moduls ist der Zustand von stored_eng, gefolgt von den K-Elementen aus stored_arr, gefolgt von stored_y.

Der Wert des Vorlagenarguments K muss größer null sein.

Anforderungen

Header: <random>

Namespace: std

Siehe auch

Referenz

<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