In fact, the first is a horrible idea.
Use either the second or the following:
struct greater
{
template<class T>
bool operator()(T const &a, T const &b) const { return a > b; }
};
std::sort(numbers.begin(), numbers.end(), greater());
That way, when someone decides that numbers should hold long or long long instead of int, your code won't fail quietly.