演算子の定義 n タプルでの厳密な弱い順序付けの場合
質問:
< の実装方法厳密な弱い順序付けの概念に従う n タプル (例: 3 タプル) の演算子ですか?答え:
厳密な弱い順序付けについて
厳密な弱い順序付けは、特定の比較を定義する数学的関係です。 2 つのオブジェクト間:
を実装します。演算子
< を定義します。 n タプルの演算子を使用するには、あるタプルが別のタプルと同等かそれ以下であるとみなされるかを決定する条件を確立する必要があります。これは、タプルの特定のデータ構造とセマンティクスに依存します。
std::tuple の例
struct S { ThingA a; ThingB b; }; bool operator<(S const& lhs, S const& rhs) { return std::tie(lhs.a, lhs.b) < std::tie(rhs.a, rhs.b); }
C 標準ライブラリの std::tuple クラスは、正しい
これは、ThingA と ThingB が厳密な弱い順序付けをすでに実装していることを前提としています。bool operator==(S const& lhs, S const& rhs) { return std::tie(lhs.a, lhs.b) == std::tie(rhs.a, rhs.b); }同様のアプローチを使用して等価性を実装することもできます:
以上が厳密に弱い順序を定義する方法 `の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。