首頁 >後端開發 >C++ >如何定義`

如何定義`

Patricia Arquette
Patricia Arquette原創
2024-12-22 06:17:31917瀏覽

How to Define the `

定義運算子'

對於滿足嚴格弱排序的n 元組,它必須滿足以下條件:

  • 等價:兩個元組x 和y 是如果x 都不等價y也不是 y
  • 不對稱性:如果 x
  • y,則 y 傳遞性:如果x
y 和y < z,則x< z.

雖然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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn