#include
#include
#include
using namespace std;
struct Student {
string name;
int id;
int score;
};
class studentSortCriterion {
public:
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 );
for ( std::set::iterator it = stuSet.begin(); it != stuSet.end(); it++ )
{
std::cout << (*it)->name << (*it)->score << endl;
}
stu3.score = 200;
for ( std::set::iterator it = stuSet.begin(); it != stuSet.end(); it++ )
{
std::cout << (*it)->name << (*it)->score << endl;
}
}