shuffle
shuffle (무작위 섞기)
범위의 요소를 난수 생성기로 무작위 섞는 알고리즘이에요. <algorithm> 헤더, C++11부터.
출처: cppreference
본문
shuffle은 [first, last)의 요소를 균일하게 무작위로 재배열해요.
template< class RandomIt, class URBG >
void shuffle( RandomIt first, RandomIt last, URBG&& g );
URBG는<random>의 균일 난수 비트 생성기(mt19937 등)예요.CopyConstructible이어야 해요.- 반환 값: 없음.
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(폐기) 대신 쓰는 권장 함수예요.