less和greater的源码分别如下:
先看一下less和greater的简单用法,比大小
#include <iostream>
#include <functional>
using namespace std;
int main()
{
cout << less<int>()(0, 1) << endl;
cout << less<int>()(1, 0) << endl;
cout << greater<int>()(0, 1) << endl;
cout << greater<int>()(1, 0) << endl;
return 0;
}
运行结果如下:
很简单,不做赘述。
看一下在sort里如何使用less和greater
#include <iostream> // std::cout
#include <functional> // std::greater
#include <algorithm> // std::sort
int main () {
int numbers[]={2,4,5,1,3,7,6};
std::sort (numbers, numbers+7, std::greater<int>());
for (int i=0; i<sizeof(numbers)/sizeof(numbers[0]); i++)
std::cout << numbers[i] << ' ';
std::cout << '\n';
std::sort (numbers, numbers+7, std::less<int>());
for (int i=0; i<sizeof(numbers)/sizeof(numbers[0]); i++)
std::cout << numbers[i] << ' ';
std::cout << '\n';
return 0;
}
运行结果: