C++ 链表排序示例:使用自定义类和比较函数
这段代码创建了一个名为 Dog 的类,该类包含两个成员变量:m_name(字符串类型)和 m_age(整型)。Dog 类还包含一个构造函数,用于初始化这两个成员变量,以及一个名为 show() 的成员函数,用于打印出狗的名字和年龄。
在主函数中,创建了四个 Dog 对象,分别为 wc、ah、lf 和 xhh,并将其添加到名为 lst 的 list 容器中。然后,使用 lst.sort(cmp_name) 对 lst 中的元素进行排序。cmp_name 是一个自定义的比较函数,用于比较两个 Dog 对象的 m_name 成员变量的大小,按照字典序进行排序。
最后,代码使用迭代器遍历 lst 中的元素,并调用 show() 函数打印出每个狗的名字和年龄。
输出结果:
代码的输出结果将按照狗名字的字典序升序排列,例如:
dog ah age = 5
dog lf age = 2
dog wc age = 1
dog xhh age = 4
代码解释:
- 类定义:
class Dog定义了一个名为Dog的类,它具有两个私有成员变量m_name和m_age,以及一个构造函数和一个成员函数show()。 - 构造函数:
Dog(string na, int age = 0)是Dog类的构造函数,用于初始化m_name和m_age。 - 成员函数:
show()函数用于打印出狗的名字和年龄。 - 比较函数:
cmp_name函数用于比较两个Dog对象的m_name成员变量的大小,返回true表示第一个Dog对象的m_name小于第二个Dog对象的m_name,否则返回false。 - 排序:
lst.sort(cmp_name)使用cmp_name作为比较函数对lst中的元素进行排序。 - 迭代器: 代码使用迭代器
iter遍历lst中的元素,并调用show()函数打印出每个狗的名字和年龄。
原文地址: https://www.cveoy.top/t/topic/quwk 著作权归作者所有。请勿转载和采集!