В чем разница между 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
выполняет дополнительную проверку времени компиляции? В остальном поведение такое же?