Namespaces
Variants

std::discrete_distribution<IntType>:: discrete_distribution

From cppreference.net
discrete_distribution ( ) ;
(1) (desde C++11)
template < class InputIt >
discrete_distribution ( InputIt first, InputIt last ) ;
(2) (desde C++11)
discrete_distribution ( std:: initializer_list < double > weights ) ;
(3) (desde C++11)
template < class UnaryOperation >

discrete_distribution ( std:: size_t count, double xmin, double xmax,

UnaryOperation unary_op ) ;
(4) (desde C++11)
explicit discrete_distribution ( const param_type & params ) ;
(5) (desde C++11)

Construye un nuevo objeto de distribución.

1) Constructor por defecto. Construye la distribución con un solo peso p = {1 }. Esta distribución siempre generará 0 .
2) Construye la distribución con pesos en el rango [ first , last ) . Si first == last , los efectos son los mismos que los del constructor por defecto.
3) Construye la distribución con pesos en weights . Efectivamente llama a discrete_distribution ( weights. begin ( ) , weights. end ( ) ) .
4) Construye la distribución con count pesos que son generados usando la función unary_op . Cada uno de los pesos es igual a w i = unary_op(xmin + δ(i + 0.5)) , donde δ =
(xmax − xmin)
count
y i ∈ {0, ..., count − 1 }. xmin y xmax deben ser tales que δ > 0 . Si count == 0 los efectos son los mismos que los del constructor por defecto.
5) Construye la distribución con params como los parámetros de la distribución.

Parámetros

first, last - el rango de elementos que definen los números a utilizar como pesos. El tipo de los elementos referenciados por InputIterator debe ser convertible a double
weights - lista de inicialización que contiene los pesos
unary_op - objeto función de operación unaria que será aplicado.

La firma de la función debe ser equivalente a la siguiente:

Ret fun ( const Type & a ) ;

La firma no necesita tener const & .
El tipo Type debe ser tal que un objeto de tipo double pueda ser desreferenciado y luego convertido implícitamente a Type . El tipo Ret debe ser tal que un objeto de tipo double pueda ser desreferenciado y asignado un valor de tipo Ret . ​

params - el conjunto de parámetros de distribución
Requisitos de tipo
-
InputIt debe cumplir con los requisitos de LegacyInputIterator .