В чем разница между shuffle и random_shuffle c ++

Функциястанд :: перетасовка был введен в C ++ 11:

template< class RandomIt, class URNG >
void shuffle( RandomIt first, RandomIt last, URNG&& g );

и имеет ту же подпись, что и одна из перегрузокстанд :: random_shuffle который также был представлен в C ++ 11:

template< class RandomIt, class RandomFunc >
void random_shuffle( RandomIt first, RandomIt last, RandomFunc&& r );

Разница в третьем параметре, где:

URNG должен соответствовать требованиям UniformRandomNumberGenerator

Это все? Разница только в томshuffle выполняет дополнительную проверку времени компиляции? В остальном поведение такое же?

Ответы на вопрос(2)

Ваш ответ на вопрос