random_shuffle
random_shuffle (요소 무작위 섞기)
범위의 요소를 무작위로 섞는 알고리즘이에요. C++14부터는 폐기(deprecated)되고 std::shuffle로 대체됐어요. <algorithm> 헤더에 있어요.
출처: cppreference
본문
random_shuffle은 범위 [first, last)의 요소를 무작위로 재배열해요.
template< class RandomIt >
void random_shuffle( RandomIt first, RandomIt last ); // (1)
template< class RandomIt, class RandomFunc >
void random_shuffle( RandomIt first, RandomIt last, RandomFunc&& r ); // (2)
-
- 구현에 의존하는 전역 난수를 사용해요.
-
- 사용자 제공 난수 함수
r을 사용해요.
- 사용자 제공 난수 함수
C++14에서 폐기되고, C++17부터 표준에서 제거됐어요. 대신 균일한 무작위성을 주는 std::shuffle을 쓰는 게 권장돼요. shuffle은 std::uniform_random_bit_generator를 받아 더 안전하고 균일해요.
std::random_device rd;
std::mt19937 g(rd());
std::vector<int> v{1,2,3,4,5};
std::shuffle(v.begin(), v.end(), g); // 권장 방식
새 코드에서는 random_shuffle 대신 <random>의 엔진과 함께 std::shuffle을 사용하세요.