` の定義方法

Patricia Arquette
リリース: 2024-12-22 06:17:31
オリジナル
849 人が閲覧しました

How to Define the `

演算子「<」を定義していますタプルの厳密な弱い順序付けの場合

n タプルが厳密な弱い順序付けを満たすには、次の基準を満たす必要があります。

  • 同等: 2 つのタプル x と y は次のとおりです。 x
  • 非対称: x
  • 推移性: If x < y と y

Boost ライブラリは、演算子「<」を持つ事前定義されたタプル クラスを提供します。厳密な弱い順序付けに従う場合は、特定のコンテキストに対して独自の演算子を定義することもできます。

演算子 '<' を実装する方法は次のとおりです。マニュアル:

struct S
{
     ThingA   a;
     ThingB   b;
};

bool operator<(S const& lhs, S const& rhs)
{
    return std::make_tuple(lhs.a, lhs.b) < std::make_tuple(rhs.a, rhs.b);
}
ログイン後にコピー

この例では、std::make_tuple 関数を利用して、S の個々の要素をコピーせずにタプルを作成します。次に、汎用タプル比較演算子を使用してタプルを比較します。

演算子 '==' については、同様のアプローチに従うことができます。

bool operator==(S const& lhs, S const& rhs)
{
    return std::make_tuple(lhs.a, lhs.b) == std::make_tuple(rhs.a, rhs.b);
}
ログイン後にコピー

これらの実装では、ThingA とThingB には独自の演算子「<」があります。演算子「==」は厳密な弱い順序付けのために定義されています。

以上が` の定義方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート