shuffle_order_engine Class
Gera uma seqüência aleatório reorganizando os valores retornados do mecanismo de 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
O tipo do mecanismo armazenado.K
O parâmetro do mecanismo de K.
Comentários
Esta classe de modelo descreve mecanismo composto que produz valores reorganizando os valores retornados pelo mecanismo base.Cada construtor preenche a matriz stored_arr com os valores de K retornados pelo mecanismo base.Armazena em stored_y adicional que um valor retornado pelo mecanismo base.Cada elemento da seqüência gerado é obtido de stored_yem seguida, após o qual:
O índice J da matriz é calculado como K * (stored_y - min()) / (max() - min() + 1).
stored_y é substituído por stored_arr[J].
stored_arr[j] é substituído por stored_eng().
O estado do mecanismo é o estado de stored_eng, seguido por elementos de K de stored_arr, seguidos por stored_y.
O valor do argumento K de modelo deve ser maior que zero.
Requisitos
Cabeçalho: <random>
namespace: STD
Consulte também
Referência
shuffle_order_engine::base_type