sort(): 使用自定义函数对对象排序

 

#include <iostream>
#include <string>
#include <algorithm>
#include <vector>

using namespace std;

bool comp(int a, int b) 
{
    return a < b;
}
struct customLess {
    bool operator()(int a, int b) const
    {
        return a < b;
    }
};

struct {
    bool operator()(int a, int b) const
    {
        return a < b;
    }
} customLess2;


int main()
{
    // 用自定义函数对象排序
    vector<int> s = { 4,2,5,1,3 };

    std::sort(s.begin(), s.end(), customLess2);    //通过类的对象调用函数
    for (auto a : s) {
        std::cout << a << " ";
    }
    std::cout << '\n';

    std::sort(s.begin(), s.end(), customLess());  //直接通过类调用函数
    for (auto a : s) {
        std::cout << a << " ";
    }
    std::cout << '\n';
    
    customLess aa;
    std::sort(s.begin(), s.end(), aa);    //通过类的对象调用函数
    for (auto a : s) {
        std::cout << a << " ";
    }
    std::cout << '\n';

    std::sort(s.begin(), s.end(), comp);  //直接调用函数
    for (auto a : s) {
        std::cout << a << " ";
    }
    std::cout << '\n';
    return 0;
}

 

 

posted @ 2020-12-21 15:47  zeroPatrick  阅读(407)  评论(0编辑  收藏  举报