首頁 > 後端開發 > C++ > 如何定義嚴格的弱點排序 `

如何定義嚴格的弱點排序 `

DDD
發布: 2025-01-03 07:56:38
原創
637 人瀏覽過

How to Define a Strict Weak Ordering `

定義運算符對於n 元組上的嚴格弱排序

問題:

如何實現

遵循嚴格弱排序概念的 n 元組(例如 3 元組)的運算子?

答案:

理解嚴格弱排序
  • 嚴格弱序是一種數學關係,定義兩個物件之間的特定比較:
  • 等效:兩個物件被視為相等(即,a

小於: 一個物件被認為「小於」另一個(即,a

實作

運算子

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);
}
登入後複製
定義

對於n 元組的運算符,您必須定義

對於n 元組的運算符建立決定一個元組何時被視為等於或小於另一個元組的條件。這取決於元組的特定資料結構和語義。

bool operator==(S const& lhs, S const& rhs) {
    return std::tie(lhs.a, lhs.b) == std::tie(rhs.a, rhs.b);
}
登入後複製
以 std::tuple 為例C 標準函式庫的 std::tuple 類別實作了正確的這假設 ThingA 和 ThingB 已經實現了嚴格的弱排序。 您也可以使用類似的方法實現相等:

以上是如何定義嚴格的弱點排序 `的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板