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)
    1. 구현에 의존하는 전역 난수를 사용해요.
    1. 사용자 제공 난수 함수 r을 사용해요.

C++14에서 폐기되고, C++17부터 표준에서 제거됐어요. 대신 균일한 무작위성을 주는 std::shuffle을 쓰는 게 권장돼요. shufflestd::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을 사용하세요.

더 알아보기 (Learn more)

cppreference