shuffle_order_engine Class
Genera una secuencia aleatoria si los valores devueltos del motor base.
template<class Engine,
size_t K>
class shuffle_order_engine {
public:
typedef Engine base_type;
typedef typename base_type::result_type result_type;
static constexpr size_t table_size = K;
shuffle_order_engine();
explicit shuffle_order_engine(const base_type& eng);
explicit shuffle_order_engine(result_type x0);
explicit shuffle_order_engine(seed_seq& seq);
void seed();
void seed(result_type x0);
void seed(seed_seq& seq);
const base_type& base() const;
static constexpr result_type min();
static constexpr result_type max();
result_type operator()();
void discard(unsigned long long count);
private:
Engine stored_eng;
result_type stored_arr[K];
result_type stored_y;
};
Parámetros
Engine
El tipo almacenado de motor.K
El parámetro del motor de k.
Comentarios
Esta clase de plantilla describe motor compuesto que genera valores si los valores devueltos por su motor base.Cada constructor rellena la matriz stored_arr con los valores de K devueltos por el motor base.A continuación almacena en stored_y un valor devuelto adicional por el motor base.Cada elemento de la secuencia generada se obtiene de stored_y, tras lo cual:
El índice J de matriz se calcula como K * (stored_y - min()) / (max() - min() + 1).
stored_y se reemplaza por stored_arr[J].
stored_arr[j] se reemplaza por stored_eng().
El estado del motor es el estado de stored_eng, seguidos por elementos de K de stored_arr, seguidos por stored_y.
El valor del argumento K de plantilla debe ser mayor que cero.
Requisitos
encabezado: <aleatorio>
espacio de nombres: std
Vea también
Referencia
shuffle_order_engine::base_type