C++ の Compare クラスの使用方法とは?
C++において、比較クラスとはオブジェクト同士を比較するための一種のクラスです。比較クラスは普通、オブジェクト同士の相対的な順序を確定するため、ソートアルゴリズムやデータ構造の中で利用されます。
比較演算子(<、>、<=、>=、==、!=)をオーバーロードすることで実現します。 これらの演算子をオーバーロードすることで、オブジェクト間の比較ルールを定義できます。
例えはPersonというクラスがあるとして、そのPersonオブジェクトの年齢が大きい小さいかを比較するクラスを作成できます。
class Person {
private:
int age;
public:
Person(int _age) : age(_age) {}
friend bool operator<(const Person& p1, const Person& p2) {
return p1.age < p2.age;
}
};
int main() {
Person p1(25);
Person p2(30);
if (p1 < p2) {
cout << "p1 is younger than p2" << endl;
} else {
cout << "p1 is older than or equal to p2" << endl;
}
return 0;
}
上記の例では、二つのPersonオブジェクトの年齢を比較する、オーバーロードされた演算子関数を定義しています。そして、main関数でその比較オブジェクトを使用して、二つのPersonオブジェクトの年齢の大小を比較しています。
比較子を用いることで、必要に応じてオブジェクト間の比較ルールを定義して、ソートアルゴリズムやデータ構造で使用できます。