#include <iostream>
#include <string>
// 自定义类
class MyClass {
public:
int member1;
std::string member2;
// 构造函数
MyClass(int m1, const std::string& m2) : member1(m1), member2(m2) {}
};
// 冒泡排序函数
void bubbleSort(MyClass arr[], int n) {
for (int i = 0; i < n - 1; ++i) {
for (int j = 0; j < n - i - 1; ++j) {
// 按照member1进行升序比较
if (arr[j].member1 > arr[j + 1].member1) {
MyClass temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
解释对象比较的逻辑
- 比较依据:在冒泡排序的内层循环中,使用
if (arr[j].member1 > arr[j + 1].member1)
语句来比较相邻两个MyClass
对象的member1
成员变量。如果前一个对象的member1
大于后一个对象的member1
,则交换这两个对象的位置。
- 交换操作:通过创建一个临时的
MyClass
对象temp
,将arr[j]
的值保存到temp
中,然后将arr[j + 1]
的值赋给arr[j]
,最后将temp
的值赋给arr[j + 1]
,完成两个对象的交换,从而实现按照member1
成员变量的升序排序。