Sdílet prostřednictvím


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

<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