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
variate_generator::distribution
variate_generator::distribution_type
variate_generator::engine_type