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>> — 스트림 입출력