¿Cómo clasifico un vector de pares basado en el segundo elemento del par?

Si tengo un vector de pares:

std::vector<std::pair<int, int> > vec;

¿Hay una manera fácil de ordenar la lista en orden creciente según el segundo elemento del par?

Sé que puedo escribir un pequeño objeto de función que haga el trabajo, pero ¿hay alguna manera de usar partes existentes deSTL ystd::less hacer el trabajo directamente?

EDITAR: Entiendo que puedo escribir una función o clase separada para pasar al tercer argumento para ordenar. La pregunta es si puedo o no construirlo a partir de material estándar. Realmente tengo algo que se parece a:

std::sort(vec.begin(), vec.end(), std::something_magic<int, int, std::less>());

Respuestas a la pregunta(7)

Su respuesta a la pregunta