cplus自定义类的多种排序例子
时间: 2024-01-25 13:04:25 浏览: 29
当然可以,以下是一些c++自定义类的多种排序例子:
1. 按照年龄从小到大排序:
```
class Person {
public:
int age;
string name;
};
bool cmp(const Person &a, const Person &b) {
return a.age < b.age;
}
int main() {
vector<Person> vec;
// vec.push_back(...) 添加元素
sort(vec.begin(), vec.end(), cmp);
// 输出结果
return 0;
}
```
2. 按照姓名从大到小排序:
```
class Person {
public:
int age;
string name;
};
bool cmp(const Person &a, const Person &b) {
return a.name > b.name;
}
int main() {
vector<Person> vec;
// vec.push_back(...) 添加元素
sort(vec.begin(), vec.end(), cmp);
// 输出结果
return 0;
}
```
3. 按照年龄从小到大排序,年龄相同的情况下按照姓名从大到小排序:
```
class Person {
public:
int age;
string name;
};
bool cmp(const Person &a, const Person &b) {
if (a.age == b.age) {
return a.name > b.name;
}
return a.age < b.age;
}
int main() {
vector<Person> vec;
// vec.push_back(...) 添加元素
sort(vec.begin(), vec.end(), cmp);
// 输出结果
return 0;
}
```
希望能帮到你。