random_shuffle_order_engine

random_shuffle_order_engine (셔플 순서 엔진)

std::shuffle_order_engine은 기본 엔진이 생성한 난수를 셔플하는 난수 엔진 어댑터예요. 크기 K의 테이블을 유지하고 요청 시 테이블에서 무작위로 선택된 수를 전달하며, 기본 엔진이 생성한 수로 교체해요. C++11부터 사용할 수 있어요.

출처: cppreference

본문

<random> 헤더에 정의되어 있고, 시그니처는 다음과 같아요.

template<
    class Engine,
    std::size_t K
> class shuffle_order_engine;

(since C++11)

shuffle_order_engine은 기본 엔진이 생성한 난수를 셔플하는 난수 엔진 어댑터예요. 크기 K의 테이블을 유지하고 요청 시 테이블에서 무작위로 선택된 수를 전달하며, 기본 엔진이 생성한 수로 교체해요.

다음 typedef는 일반적으로 쓰이는 매개변수 집합으로 난수 엔진을 정의해요. <random> 헤더에 정의되어 있어요.

타입 정의
knuth_b (C++11) std::shuffle_order_engine<std::minstd_rand0, 256>

템플릿 매개변수 (Template parameters)

  • Engine — 래핑된 엔진의 타입
  • K — 내부 테이블의 크기. 0보다 커야 해요.

타입 요구사항 (Type requirements)

  • Engine은 RandomNumberEngine 요구사항을 만족해야 해요.

멤버 타입 (Member types)

멤버 타입 정의
result_type Engine::result_type

멤버 함수 (Member functions)

  • (constructor) — 엔진 어댑터 생성
  • seed — 기본 엔진의 상태 설정
  • base — 기본 엔진 반환
  • 생성: operator() — 기본 엔진 상태 진행 및 생성 값 반환; discard — 어댑터 상태 진행
  • 특성: min [static] — 가장 작은 생성 값; max [static] — 가장 큰 생성 값

비멤버 함수 (Non-member functions)

  • operator== operator!= — 두 엔진 어댑터 비교
  • operator<< operator>> — 스트림 입출력

더 알아보기 (Learn more)

cppreference