非反射性と推移性のため、operator< は常に半順序の定義を満たします。厳密な弱順序の定義はより厳密であり、全順序の定義はさらに厳密です。
また、ドキュメントの厳密な弱い順序付けの定義も読みました: StrictWeakOrdering
最初の 3 つの公理、非反射性、反対称性、および推移性は、半順序の定義です。等価性の推移性は、厳密な弱い順序付けの定義によって必要とされます。全順序付けは、さらに強い条件を満たすものです: 同等性は同等性と同じでなければなりません。
これらの定義についてはよくわかりません。主な質問:
1.半順序付けは暗黙的に同値を定義しますか?
2.厳密な弱順序付けと全順序付けについてはどうですか?
3.STL はソート アルゴリズムで厳密な弱い順序付けを必要としますが、なぜ部分的順序付けまたは全体的順序付けではないのですか? この質問について、非反射性、反対称性、半順序付けの定義である推移性の 3 つの公理を満たすことを証明することによって、有効な比較規則を証明するいくつかの教科書を読みました。ドキュメントでは、演算子 < は常にこの定義を満たすことを参照しています。部分的な順序付けを使用して、または同等に演算子を使用してオブジェクトを比較できないのはなぜですか