geometric_distribution::operator()
Returns a random value.
template<class Engine>
result_type operator()(Engine& eng);
template<class Engine>
result_type operator()(Engine& eng,
const param_type& par0);
Parameters
Engine
The type of the random engine.eng
The random engine.par0
The parameter package used as the source for the random value.
Remarks
The first member function uses the engine eng as a source of uniformly distributed integral values and returns integral values with each value i occurring with probability pr(i) = (1 - stored_p) * stored_p^(i - 1).
The second member function behaves the same, except that it uses the parameters stored in par0.
Example
// std_tr1__random__geometric_distribution_operator_fn.cpp
// compile with: /EHsc
#include <random>
#include <iostream>
typedef std::mt19937 Myeng;
typedef std::geometric_distribution<int, double> Mydist;
int main()
{
Myeng eng;
Mydist dist(0.1);
Mydist::input_type engval = eng();
Mydist::result_type distval = dist(eng);
distval = distval; // to quiet "unused" warnings
engval = engval;
std::cout << "p == " << dist.p() << std::endl;
dist.reset(); // discard any cached values
std::cout << "a random value == " << dist(eng) << std::endl;
std::cout << "a random value == " << dist(eng) << std::endl;
std::cout << "a random value == " << dist(eng) << std::endl;
return (0);
}
p == 0.1 a random value == 0 a random value == 1 a random value == 19
Requirements
Header: <random>
Namespace: std