排序案例—自定义数据类型 - 需求—按照年龄进行升序,如果年龄相同按照身高进行降序—排序要指定规则
#include#include#includeusing namespace std;class Person{public:string m_name;int m_age;int m_heigth;Person(string name, int age, int height){this->m_name = name;this->m_age = age;this->m_heigth = height;}};// 排序规则bool myCompare(Person &p1, Person &p2){if(p1.m_age != p2.m_age){return p1.m_age < p2.m_age;}else{return p1.m_heigth > p2.m_heigth;}}void myPrint(list &list){for(auto it = list.begin(); it != list.end(); it++){cout << "name " << (*it).m_name << "age " << (*it).m_age << "height" << (*it).m_heigth << endl;}}void test(void){// 创建list容器list list;// 准备数据Person p1("zhangsan", 18, 180);Person p2("wangwu", 18, 160);Person p3("zhaosi", 25, 170);// 放入容器list.push_back(p1);list.push_back(p2);list.push_back(p3);// 未排序前myPrint(list);// 排序后list.sort(myCompare);myPrint(list);}int main(){test();return 0;}