Freigeben über


variate_generator Class

Umschließt ein Modul und eine Verteilung ein.

template<class Engine, class Dist>
    class variate_generator {
public:
    typedef Engine engine_type;
    typedef engine-value-type engine_value_type;
    typedef Dist distribution_type;
    typedef typename Dist::result_type result_type;
    variate_generator(engine_type eng0, distribution_type dist0);
    result_type operator()();
    template<class T>
        result_type operator()(T value);
    engine_value_type& engine();
    const engine_value_type& engine() const;
    distribution_type& distribution();
    const distribution_type& distribution() const;
    result_type min() const;
    result_type max() const;
private:
    Engine eng;             // exposition only
    Dist dist;              // exposition only
    };

Parameter

  • Engine
    Der Typ des zufälligen Moduls.

  • Dist
    Der Typ der Verteilung.

Hinweise

Die Vorlagenklasse beschreibt ein Objekt, das ein Modul und eine Verteilung enthält und Werte erzeugt, indem es das umschlossene Modulobjekt zu operator() des distribution-Objekts übergibt.

Das Vorlagenargument Engine kann ein Typ Eng, Eng* oder Eng& sein, in dem Eng ein Modul ist.Der Typ Eng ist der zugrunde liegende Motortyp.Das entsprechende Objekt des Typs Eng ist das zugrunde liegende Modulobjekt.

Die Vorlage wird ein eingebundenes Modul, um den Typ der Werte entsprechen, die durch das engine-Objekt in den Typ aus Werten erstellt werden, die vom distribution-Objekt benötigt werden.Eingebundenen operator() des Moduls gibt die Werte des Typs Dist::input_type zurück, generiert, wie folgt:

Wenn Engine::result_type und Dist::input_type beide ganzzahligen Typen, die es eng() zurückgibt, konvertiert, um Dist::input_type einzugeben.

wenn Engine::result_type und Dist::input_type beide Gleitkommatypen sind, die es (eng() - eng.min()) / (eng.max() - eng.min()) zurückgibt, konvertiert, um Dist::input_type einzugeben.

wenn Engine::result_type ein ganzzahliger Typ ist und Dist::input_type ein Gleitkommatyp ist, den es (eng() - eng.min()) / (eng.max() - eng.min() + 1) zurückgibt, konvertiert, um Dist::input_type einzugeben.

Wenn Engine::result_type ein Gleitkommatyp ist und Dist::input_type ein ganzzahliger Typ ist, der es das ((eng() - eng.min()) / (eng.max() - eng.min()) * std::numeric_limits<Dist::input_type>::max() zurückgibt, konvertiert, um Dist::input_type einzugeben.

Anforderungen

Header: <random>

Namespace: std

Siehe auch

Referenz

<random>

variate_generator::distribution

variate_generator::distribution_type

variate_generator::engine

variate_generator::engine_type

variate_generator::engine_value_type

variate_generator::operator()

variate_generator::variate_generator