您当前的位置: 首页 >  c++
  • 0浏览

    0关注

    1477博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

C++ set 多级排序 多维度排序

软件工程小施同学 发布时间:2021-09-22 16:46:11 ,浏览量:0

#include 
#include 
#include 
using namespace std;

/*Student结构体*/
struct Student {
	string	name;
	int	id;
	int	score;
};

/*“仿函数"。为Student set指定排序准则*/
class studentSortCriterion {
public:
	/*类型要与set容器类型一致*/
	bool operator()( const Student *a, const Student *b ) const
	{
		// 成绩相等,按照id从小到大排;成绩不相等,按照成绩从大到小排
		return( (a->score == b->score) ? (a->id < b->id) : (a->score > b->score) );
	}
};


int main()
{
	set	stuSet;
	set	stus;

	Student stu1, stu2, stu3;
	stu1.name	= "张三";
	stu1.id		= 1;
	stu1.score	= 100;

	stu2.name	= "李四";
	stu2.id		= 2;
	stu2.score	= 90;

	stu3.name	= "小明";
	stu3.id		= 3;
	stu3.score	= 100;

	stuSet.insert( &stu1 );
	stuSet.insert( &stu2 );
	stuSet.insert( &stu3 );

	/* 查找 */
	Student stuTem;
	stuTem.score	= 100;
	stuTem.id	= 3;
	Student						* stuTempPtr;
	set::iterator	iter;
	iter = stuSet.find( &stuTem );
	if ( iter != stuSet.end() )
	{
		cout name             
关注
打赏
1665320866
查看更多评论
0.0427s