set容器之自定义数据类型排序

2021-03-02 15:45:12 浏览数 (1)

自定义数据类型改变默认排序规则排序

利用仿函数

代码语言:javascript复制
#include<iostream>
using namespace std;
#include<set>
//自定义数据类型排序
class per
{
public:
	per(string Name,int Age):name(Name),age(Age){}
	string name;
	int age;

};
class myCompare 
{
public:
	//利用仿函数,重载()
	bool operator()(const per &per1, const per &per2)const
	{
		//降序
		return per1.age>per2.age;
	}
};
void p1(const set<per,myCompare>& s)
{
	for (set<per,myCompare>::const_iterator it = s.begin(); it != s.end(); it  )
	{
		cout << "姓名: " << (*it).name << " 年龄: " << (*it).age << endl;
	}
	cout << endl;
}

void test()
{
	per person1("第一个人", 23);
	per person2("第二个人", 19);
	per person3("第三个人", 26);
	cout << "set容器改变默认排序规则: " << endl;
	set<per,myCompare> s2;
	s2.insert(person1);
	s2.insert(person2);
	s2.insert(person3);
	p1(s2);

}
int main()
{
	test();
	system("pause");
	return 0;
}

0 人点赞