转自:http://blog.csdn.net/chijianxingfeng/article/details/8886399
greater和less
greater和less是头文件<xfunctional>中定义的两个结构。下面看它们 的定义,greater和less都重载了操作符()。
-
- emplate<class _Ty>
- struct greater
- : public binary_function<_Ty, _Ty, bool>
- {
- bool operator()(const _Ty& _Left, const _Ty& _Right) const
- {
- return (_Left > _Right);
- }
- };
-
-
- emplate<class _Ty>
- struct less
- : public binary_function<_Ty, _Ty, bool>
- {
- bool operator()(const _Ty& _Left, const _Ty& _Right) const
- {
- return (_Left < _Right);
- }
- };
在sort()函数中使用greater<int>()和less<int>(),
- #include<iostream>
- #include<algorithm>//因为用了sort()函数
- #include<functional>//因为用了greater<int>()
- using namespace std;
-
- void main()
- {
- int a[]={3,1,4,2,5};
- int i;
- int len=sizeof(a)/sizeof(int);
-
- sort(a ,a + len, greater<int>());
- for(i=0;i<len;i++)
- cout<<a[i]<<" ";
- cout<<"\n";
- sort(a, a + len, less<int>());
- for(i=0;i<len;i++)
- cout<<a[i]<<" ";
- }