std::sort con comparador personalizado

std::sort con comparador personalizado

std::sort acepta un functor . Este es cualquier objeto que se puede llamar (con los parámetros correctos). La función logra esto mediante el uso de plantillas, como la siguiente

template<typename Iter, typename Comp>
void sort(Iter begin, Iter end, Comp compare) { ... }

IntComparator1 , 2 y 3 son todos funtores válidos para este comparador, ya que todos pueden llamarse usando operator() con 2 enteros.

Además, como dijiste, la tercera opción suele ser más intuitiva.