std::discrete_distribution<IntType>::discrete_distribution
From cppreference.net
discrete_distribution();
|
(1) | (since C++11) |
template< class InputIt >
discrete_distribution( InputIt first, InputIt last );
|
(2) | (since C++11) |
discrete_distribution( std::initializer_list<double> weights );
|
(3) | (since C++11) |
template< class UnaryOperation >
discrete_distribution( std::size_t count, double xmin, double xmax,
UnaryOperation unary_op );
|
(4) | (since C++11) |
explicit discrete_distribution( const param_type& params );
|
(5) | (since C++11) |
Constructs a new distribution object.
1) Default constructor. Constructs the distribution with a single weight p = {1}. This distribution will always generate
0.2) Constructs the distribution with weights in the range
[first, last). If first == last, the effects are the same as of the default constructor.3) Constructs the distribution with weights in
weights. Effectively calls discrete_distribution(weights.begin(), weights.end()).4) Constructs the distribution with
and i ∈ {0, ..., count − 1}.
count weights that are generated using function unary_op. Each of the weights is equal to wi = unary_op(xmin + δ(i + 0.5)), where δ = | (xmax − xmin) |
| count |
xmin and xmax must be such that δ > 0. If count == 0 the effects are the same as of the default constructor.5) Constructs the distribution with
params as the distribution parameters.Parameters
| first, last | - | the range of elements defining the numbers to use as weights. The type of the elements referred by InputIterator must be convertible to double
|
| weights | - | initializer list containing the weights |
| unary_op | - | unary operation function object that will be applied. The signature of the function should be equivalent to the following:
The signature does not need to have |
| params | - | the distribution parameter set |
| Type requirements | ||
-InputIt must meet the requirements of LegacyInputIterator.
| ||