002二元谓词改变vector容器的sort默认排列顺序

#include<iostream>
#include <set>
#include <vector>
#include <algorithm>
using namespace std;
class MyCompare
{
public:
	bool operator()(int num1,int num2)
	{
		return num1>num2;
	}
};
void test01()
{
	vector<int> v;
	v.push_back(10);
	v.push_back(20);
	v.push_back(30);
	v.push_back(40);
	v.push_back(50);
	v.push_back(60);
	//默认从小到大
	sort(v.begin(),v.end());

	for (vector<int>::iterator it=v.begin();it!=v.end();it++)
	{
		cout<<*it<<endl;
	}
	cout<<endl;
	cout<<"-----------------------------"<<endl;

	//使用函数对象改变算法策略,排序从大到小
	sort(v.begin(),v.end(),MyCompare());//最后一个参数是谓词函数
	for (vector<int>::iterator it=v.begin();it!=v.end();it++)
	{
		cout<<*it<<endl;
	}
	cout<<endl;
}
using namespace std;
int main(void)
{
	test01();
	system("pause");
	return 0;
}
/*
 * 10
20
30
40
50
60

-----------------------------
60
50
40
30
20
10

请按任意键继续. . .


 */

猜你喜欢

转载自blog.csdn.net/baixiaolong1993/article/details/89640987