C++结构体Struct的cmp函数
C++的结构体Struct可以容纳许多不同的数据值
举例:
struct PayRoll { int empNumber; string name; double hours,payRate,grossPay; };
它本质上是创建一个名为 PayRoll 的新数据类型,但我们还并没有使用它
而以下定义语句创建了 PayRoll 结构体的 3 个变量:
PayRoll deptHead, foreman, associate;
它们每一个都是 PayRoll 结构体的实例,可以被分配和拥有自己的内存,以保存其成员数据。请注意,尽管 3 个结构体变量具有不同的名称,但每个变量都包含具有相同名称的成员,如图所示
我们也可以用声明的结构体中的数据结构去定义一个数组,如:
struct PayRoll { int empNumber; string name; double hours,payRate,grossPay; }a[1000];
这样就声明了一个a数组,数组中的每个值都具有结构体中的数据类型结构,即我们可以访问 a[1].name 或 a[500].hours 等,但前提是你已经为他们赋过值。
但是简单定义的结构体不能排序,如果需要将结构体按照某种性质排序,则需要sort函数和手动定义的cmp比较函数,如:
struct PayRoll { int empNumber; string name; double hours,payRate,grossPay; }a[1000]; bool cmp(RayRoll a, RayRoll b) { return a.name < b.name; }
sort(a, a + 1000, cmp);
这样我们就定义了a数组的排序,即按照每个值的name按字典序从小到大排序
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?