RandomShuffle
범위 내의 N개 요소들의 시퀀스를 N 중 하나로 재배열합니다! 가능한 정렬들은 임의로 선택됩니다.
template <class Ran>
void RandomShuffle (
Ran first,
Ran last
);
template <class Ran, class RanGen>
void RandomShuffle (
Ran first,
Ran last,
RanGen func
);
Template 파라미터
- Ran
-
랜덤 접근 반복자입니다.
- RanGen
-
랜덤 생성자(generator) 함수입니다.
파라미터
- first
-
재정렬된 범위의 1번째 요소의 위치를 설명하는 랜덤 접근 반복자입니다.
- last
-
재정렬된 범위의 마지막 직전 요소의 위치를 설명하는 랜덤 접근 반복자입니다.
- func
-
랜덤 번호 생성자라고 불리는 특수 함수 객체입니다.
설명
RandomShuffle은 범위 [first, last)의 요소들을 랜덤하게 재정렬합니다:
즉, N! 가능한 순서들 중 하나를 무작위로 고릅니다. 여기서 N은 last - first입니다.
RandomShuffle은 2가지 버전이 있습니다.
1번째 버전은 내부 랜덤 번호 생성자를 사용하고, 2번째 버전은 인자를 통해 명시적으로 전달한 특수한 함수 객체의 일종인 랜덤 번호 생성자를 사용합니다.
참고사항
알고리즘