使用指定的顺序对序列容器进行排序
如果容器中的值已经过载某些运算符,则 std::sort
可以与专门的仿函数一起使用,以升序或降序排序:
Version >= C++ 11
#include <vector>
#include <algorithm>
#include <functional>
std::vector<int> v = {5,1,2,4,3};
//sort in ascending order (1,2,3,4,5)
std::sort(v.begin(), v.end(), std::less<int>());
// Or just:
std::sort(v.begin(), v.end());
//sort in descending order (5,4,3,2,1)
std::sort(v.begin(), v.end(), std::greater<int>());
//Or just:
std::sort(v.rbegin(), v.rend());
Version >= C++ 14
在 C++ 14 中,我们不需要为比较函数对象提供模板参数,而是让对象根据传入的内容进行推导:
std::sort(v.begin(), v.end(), std::less<>()); // ascending order
std::sort(v.begin(), v.end(), std::greater<>()); // descending order