#include <algorithm> #include <functional> #include <array> #include <iostream> using namespace std; int main() { array<int, 10> s = {5, 7, 4, 2, 8, 6, 1, 9, 0, 3}; // 用默认的 operator< 排序 sort(s.begin(), s.end());//升序 for (auto a : s) { cout << a << " "; } cout << ' '; // 用标准库比较函数对象排序 sort(s.begin(), s.end(), greater<int>());//降序 for (auto a : s) { cout << a << " "; } cout << ' '; // 用自定义函数对象排序 struct { bool operator()(int a, int b) const { return a < b; } } customLess; sort(s.begin(), s.end(), customLess);//升序 for (auto a : s) { cout << a << " "; } cout << ' '; // 用 lambda 表达式排序 sort(s.begin(), s.end(), [](int a, int b) { return b < a; });//降序 for (auto a : s) { cout << a << " "; } cout << ' '; }
输出
0 1 2 3 4 5 6 7 8 9 9 8 7 6 5 4 3 2 1 0 0 1 2 3 4 5 6 7 8 9 9 8 7 6 5 4 3 2 1 0