如果容器中的值已经重载了某些运算符,则std::sort可以将其与专用函子一起使用,以升序或降序排序:
#include <vector>
#include <algorithm>
#include <functional>
std::vector<int> v = {5,1,2,4,3};
//升序排序(1,2,3,4,5)
std::sort(v.begin(), v.end(), std::less<int>());
// 要不就:
std::sort(v.begin(), v.end());
//降序排列(5,4,3,2,1)
std::sort(v.begin(), v.end(), std::greater<int>());
//要不就:
std::sort(v.rbegin(), v.rend());在C ++ 14中,我们不需要为比较函数对象提供模板参数,而是让对象根据传入的内容推论得出:
std::sort(v.begin(), v.end(), std::less<>()); // 升序 std::sort(v.begin(), v.end(), std::greater<>()); // 降序排列