Как сказал Алради, вы должны предоставить обратный предикат. Если вы не можете по каким-либо причинам (например, из-за чистой лени), вы всегда можете сначала отсортировать, а затем развернуть:
sort(arr, arr+n, pred);
reverse( arr, arr+n );
Это было бы больше работы для компьютера, но это понятно и делает свою работу. Если вам нужна скорость для этого вида, используйте решение с обращенными предикатами.