variate_generator Class
Otacza silnika i dystrybucji.
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
};
Parametry
Engine
Typ silnika losowe.Dist
Typ rozkładu.
Uwagi
Klasa szablonu opisuje obiekt posiada silnika i dystrybucji i produkuje, przekazując obiekt zawinięty silnika do wartości distribution obiektu operator().
Argument szablonu Engine może być typu Eng, Eng*, lub Eng&, gdzie Eng jest silnik.Typ Eng jest podstawowym typu silnika.Odpowiedni obiekt typu Eng jest silnik obiektu źródłowego.
Szablon używa silnika opakowane zgodnie z typem wartości produkowanych przez engine obiektu typu wartości wymagane przez distribution obiektu.Zawinięty silnika operator() zwraca wartości typu Dist::input_type, wygenerowany następujący:
Jeśli Engine::result_type i Dist::input_type są integralną oba typy go zwraca eng(), są konwertowane na wpisz Dist::input_type.
Jeśli Engine::result_type i Dist::input_type są zarówno zmiennoprzecinkowych typów go zwraca (eng() - eng.min()) / (eng.max() - eng.min()), są konwertowane na wpisz Dist::input_type.
Jeśli Engine::result_type jest typem całkowitym i Dist::input_type zmiennoprzecinkowych wpisać go zwraca (eng() - eng.min()) / (eng.max() - eng.min() + 1), są konwertowane na wpisz Dist::input_type.
Jeśli Engine::result_type jest typu zmiennoprzecinkowego i Dist::input_type jest integralną wpisz zwraca ((eng() - eng.min()) / (eng.max() - eng.min()) * std::numeric_limits<Dist::input_type>::max(), są konwertowane na wpisz Dist::input_type.
Wymagania
Nagłówek: <random>
Obszar nazw: std
Zobacz też
Informacje
variate_generator::distribution
variate_generator::distribution_type
variate_generator::engine_type