Причина, по которой вы получаете эту ошибку, заключается в том, что вы объявляете shuffle
как функцию, не принимающую никаких аргументов.
void shuffle();
Еще одно замечание: вы, вероятно, хотите взять ссылка на deque в этой функции, в противном случае вы будете перетасовывать локальную копию и не будете иметь желаемого побочного эффекта.
Вы, вероятно, хотите, чтобы она выглядела следующим образом:
void shuffle(deque<int>& dq);
Также вы можете использовать iter_swap
вместо swap
для замены элементов.В очереди это, вероятно, не будет иметь значения, но для list
или map
это будет.