阅读量:0
在C++中,可以使用标准库函数std::sort
来对对象数组进行排序。但是在使用std::sort
之前,需要定义比较函数或者重载对象的运算符,以便指定对象的排序规则。
以下是一个示例,展示了如何对存储Student对象的数组按照学生年龄进行排序。
#include <algorithm> #include <iostream> #include <vector> class Student { public: std::string name; int age; Student(std::string name, int age) : name(name), age(age){} // 重载运算符<,用于指定排序规则 bool operator<(const Student& other) const { return age < other.age; } }; int main() { std::vector<Student> students; students.push_back(Student("Alice", 20)); students.push_back(Student("Bob", 19)); students.push_back(Student("Charlie", 22)); // 使用std::sort对students数组进行排序 std::sort(students.begin(), students.end()); // 打印排序后的结果 for (const auto& student : students) { std::cout << "Name: " << student.name << ", Age: " << student.age << std::endl; } return 0; }
以上代码中,我们定义了一个Student
类,其中包含name
和age
两个成员变量。为了实现对象数组的排序,我们重载了<
运算符,指定了按照学生年龄进行比较的规则。
在main
函数中,我们将Student
对象存储在std::vector
中,并使用std::sort
对数组进行排序。最后,我们遍历排序后的数组并打印结果。输出结果将会按照学生的年龄从小到大进行排序。