greater()和less()的使用

greater和less

greater和less是头文件中定义的两个结构。下面看它们 的定义,greater和less都重载了操作符()。

		// TEMPLATE STRUCT greater
template
	struct greater
		: public binary_function<_Ty, _Ty, bool>
	{	// functor for operator>
	bool operator()(const _Ty& _Left, const _Ty& _Right) const
		{	// apply operator> to operands
		return (_Left > _Right);
		}
	};

		// TEMPLATE STRUCT less
template
	struct less
		: public binary_function<_Ty, _Ty, bool>
	{	// functor for operator<
	bool operator()(const _Ty& _Left, const _Ty& _Right) const
		{	// apply operator< to operands
		return (_Left < _Right);
		}
	};

在sort()函数中使用greater()和less(),

#include
#include//因为用了sort()函数
#include//因为用了greater()
using namespace std;

void main()
{
	int a[]={3,1,4,2,5};
	int i;
	int len=sizeof(a)/sizeof(int);//这里切记要除以sizeof(int)!

	sort(a ,a + len, greater());//内置类型的由大到小排序
	for(i=0;i());		//内置类型的由小到大排序
	for(i=0;i

 

 

 

你可能感兴趣的:(ACM)