在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
對數組進行排序。最后,我們遍歷排序后的數組并打印結果。輸出結果將會按照學生的年齡從小到大進行排序。