#include <iostream>
using namespace std;
#include <list>
//按照年龄进行升序,如果年龄相同按照身高进行降序
class Person
{
public:
Person(string name,int age,int height){
this->m_name=name;
this->m_age=age;
this->m_height=height;
}
string m_name;
int m_age;
int m_height;
};
bool mycompare(Person p1,Person p2)
{
if(p1.m_age==p2.m_age){
//年龄相同 按身高降序排序
return p1.m_height>p2.m_height;
}
return p1.m_age<p2.m_age;
}
void test01()
{
Person p1("刘备",35,175);
Person p2("曹操",45,180);
Person p3("孙权",40,170);
Person p4("赵云",25,190);
Person p5("张飞",35,200);
list<Person> L;
L.push_back(p1);
L.push_back(p2);
L.push_back(p3);
L.push_back(p4);
L.push_back(p5);
L.sort(mycompare);
for(list<Person>::iterator it=L.begin();it!=L.end();it++){
cout<<it->m_name<<" "<<it->m_age<<" "<<it->m_height<<endl;
}
}
int main()
{
test01();
return 0;
}
C++ list 排序案例
最新推荐文章于 2024-04-26 21:11:24 发布