variate_generator Class
Zalomí motoru a rozdělení.
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 motoru náhodné.Dist
Typ rozdělení.
Poznámky
Popisuje šablony třídy objektu, který obsahuje motoru a rozdělení a vytváří hodnoty předáním objektu zalomený motoru distribution objektu operator().
Argument šablony Engine může být typu Eng, Eng*, nebo Eng&, kde Eng je motor.Typ Eng je základní typ motoru.Odpovídající objekt typu Eng je základní objekt motoru.
Šablona používá zalomený motoru na typu hodnoty vyrobené engine objekt na typ hodnoty vyžadované distribution objektu.Zalomený motoru operator() vrátí hodnoty typu Dist::input_type, generovaných takto:
Pokud Engine::result_type a Dist::input_type jsou jeho nedílnou oba typy vrátí eng(), převedené zadejte Dist::input_type.
Pokud Engine::result_type a Dist::input_type jsou plovoucí oba typy ji vrátí (eng() - eng.min()) / (eng.max() - eng.min()), převedené zadejte Dist::input_type.
Pokud Engine::result_type je integrálního typu a Dist::input_type plovoucí desetinnou čárkou zadat ji vrátí (eng() - eng.min()) / (eng.max() - eng.min() + 1), převedené zadejte Dist::input_type.
Pokud Engine::result_type je typ s plovoucí desetinnou čárkou a Dist::input_type je nedílnou zadejte ji vrátí ((eng() - eng.min()) / (eng.max() - eng.min()) * std::numeric_limits<Dist::input_type>::max(), převedené zadejte Dist::input_type.
Požadavky
Záhlaví: <random>
Obor názvů: std
Viz také
Referenční dokumentace
variate_generator::distribution
variate_generator::distribution_type
variate_generator::engine_type