다음을 통해 공유


shuffle_order_engine Class

기본 엔진에서 반환 된 값을 재배열 하 여 난수 시퀀스를 생성 합니다.

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;
    };

매개 변수

  • Engine
    저장된 엔진 형식입니다.

  • K
    K 엔진 매개 변수입니다.

설명

이 템플릿 클래스에 설명 된 복합 엔진 는 생성 값 기본 엔진에 의해 반환 되는 값을 다시 정렬 합니다.각 생성자에서 배열을 채웁니다 stored_arr 와 K 기본 엔진에 의해 반환 되는 값입니다.다음에 저장 stored_y 기본 엔진에서 반환 하는 추가 값.생성 된 시퀀스의 각 요소에서 다음 가져온 stored_y, 뒤:

  • 배열 인덱스 J 로 계산 K * (stored_y - min()) / (max() - min() + 1).

  • stored_y대체 stored_arr[J].

  • stored_arr[j]대체 stored_eng().

엔진의 상태를 상태입니다 stored_eng가 오고 그 뒤에 K 요소의 stored_arr, 뒤 stored_y.

템플릿 인수의 값이 K 0 보다 커야 합니다.

요구 사항

헤더: <random>

네임 스페이스: std

참고 항목

참조

<random>

shuffle_order_engine::base

shuffle_order_engine::base_type

shuffle_order_engine::discard

shuffle_order_engine::operator()

shuffle_order_engine::seed

shuffle_order_engine::shuffle_order_engine