关于stl::set的运用问题
struct Person{
string name;
unsigned char level;
unsigned long score;
Person(char *_name,unsigned char _level,unsigned long _score)
{
name=_name;
level=_level;
score=_score;
}
void setLevel(int _level)
{
this->level=_level;
}
int getLevel()
{
return level;
}
void setScore(int _score)
{
score=_score;
}
bool operator < (const Person& first) const
{
bool temp=false;
if(name!=first.name)
temp=(score>first.score||(score==first.score&&level>first.level));
return temp;
}
};
void show(Person person)
{
cout<<person.name<<" "<<(int)person.level<<" "<<person.score<<endl;
}
void main()
{
set<Person> p;
set<Person>::iterator itr;
Person p1("阿飞",87,1000)
p.insert(p1);
p.insert(Person("逢灯",87,2000));
p.insert(Person("德",97,1000));
for_each(p.begin(),p.end(),show);
getchar();
}
代码在怎么修改,可以实现对象p1的level和socre数据修改后,set中会顺序会被重新排列了?