Jaka jest różnica między shuffle a random_shuffle c ++
Funkcjastd :: shuffle został wprowadzony w C ++ 11:
template< class RandomIt, class URNG >
void shuffle( RandomIt first, RandomIt last, URNG&& g );
i ma taki sam podpis jak jeden z przeciążeństd :: random_shuffle który został również wprowadzony w C ++ 11:
template< class RandomIt, class RandomFunc >
void random_shuffle( RandomIt first, RandomIt last, RandomFunc&& r );
Różnica dotyczy trzeciego parametru, gdzie:
URNG musi spełniać wymagania UniformRandomNumberGenerator
Czy to wszystko? Czy to tylko różnicashuffle
wykonuje dodatkowe sprawdzenie czasu kompilacji? Czy zachowanie jest takie samo?