C++のオブジェクト配列をどのようにソートしますか?

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の2つのメンバー変数を含んでいます。オブジェクト配列のソートを実現するために、学生の年齢で比較するルールを指定するために、<演算子のオーバーロードを行いました。

main関数では、Studentオブジェクトをstd::vectorに保存し、std::sortを使用して配列を並べ替えます。最後に、並べ替えられた配列を走査して結果を表示します。出力結果は学生の年齢が小さい順に並べられます。

bannerAds