C++ //排序案列 //描述:将person自定义数据类型进行排序,Person中有属性 姓名,年龄,身高 //排序规则: 按照年龄进行的升序,如果年龄相同按照身高进行降序
1 //排序案列 2 //描述:将person自定义数据类型进行排序,Person中有属性 姓名,年龄,身高 3 //排序规则: 按照年龄进行的升序,如果年龄相同按照身高进行降序 4 5 #include<iostream> 6 #include<string> 7 #include<algorithm> 8 #include<list> 9 10 using namespace std; 11 12 13 //person类 14 class Person 15 { 16 public: 17 Person(string name, int age,int height) 18 { 19 this->m_Name = name; 20 this->m_Age = age; 21 this->m_Height = height; 22 } 23 24 25 string m_Name; //姓名 26 int m_Age; //年龄 27 int m_Height; // 身高 28 }; 29 30 //指定排序规则 31 32 bool comparePerson(Person & p1, Person& p2) 33 { 34 //按照年龄作为升序 35 if (p1.m_Age == p2.m_Age) 36 { 37 //年龄相同 38 return p1.m_Height > p2.m_Height; 39 } 40 else 41 { 42 return p1.m_Age < p2.m_Age; 43 } 44 45 } 46 void test01() 47 { 48 list<Person>L1; 49 50 //准备数据 51 Person p1("刘备", 35, 175); 52 Person p2("曹操", 45, 180); 53 Person p3("孙权", 40, 170); 54 Person p4("赵云", 35, 190); 55 Person p5("张飞", 25, 160); 56 Person p6("关羽", 35, 200); 57 58 59 //插入数据 60 L1.push_back(p1); 61 L1.push_back(p2); 62 L1.push_back(p3); 63 L1.push_back(p4); 64 L1.push_back(p5); 65 L1.push_back(p6); 66 67 for (list<Person>::iterator it = L1.begin(); it != L1.end(); it++) 68 { 69 cout << "姓名:" << (*it).m_Name << " 年龄:" << it->m_Age << " 身高:" << it->m_Height << endl; 70 71 } 72 73 //排序 74 cout << "-------------------------------------" << endl; 75 cout << "排序后:" << endl; 76 77 L1.sort(comparePerson); 78 for (list<Person>::iterator it = L1.begin(); it != L1.end(); it++) 79 { 80 cout << "姓名:" << (*it).m_Name << " 年龄:" << it->m_Age << " 身高:" << it->m_Height << endl; 81 82 } 83 } 84 int main() 85 { 86 87 test01(); 88 }
本文来自博客园,作者:Bytezero!,转载请注明原文链接:https://www.cnblogs.com/Bytezero/p/15143598.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)