c++ 容器排序

#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 << '\n';
 
    // 用标准库比较函数对象排序
    sort(s.begin(), s.end(), greater<int>());//降序 
    for (auto a : s) {
        cout << a << " ";
    }   
    cout << '\n';
 
    // 用自定义函数对象排序
    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 << '\n';
 
    // 用 lambda 表达式排序
    sort(s.begin(), s.end(), [](int a, int b) {
        return b < a;   
    });//降序 
    for (auto a : s) {
        cout << a << " ";
    } 
    cout << '\n';
}

输出

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

猜你喜欢

转载自www.cnblogs.com/sea-stream/p/10111781.html