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

 

posted @ 2018-12-13 00:02  anobscureretreat  阅读(1135)  评论(0编辑  收藏  举报