如何定義運算符
簡介
嚴格弱排序是定義兩個物件之間關係的數學概念。它指定如果物件x 和y 相等,則f(x, y) 和f(y, x) 都為false;如果a 小於b,則f(a, b) 為true,f(b, a) 為false 。
n 元組的定義
對於n 元組,運算子
實作
上面的定義可以使用以下步驟在C 中實現:
使用比較函數的運算子。
示例
struct Triple { int x; int y; int z; bool operator<(const Triple& other) const { return (x < other.x) || (y < other.y) || (z < other.z); } };
對於3 元組,運算符
可以定義如下:
使用此定義,如果兩個三元組具有相同的x、y 和 z值,則它們是等效的。如果一個三元組的任何組件小於另一個三元組的組件,則該三元組將被視為小於另一個三元組。
struct S { int a; int b; }; bool operator<(const S& lhs, const S& rhs) { return std::tie(lhs.a, lhs.b) < std::tie(rhs.a, rhs.b); }std::tuple或者,std:: C 標準庫提供的元組類別已經對元組實現了嚴格的弱排序。為了利用這一點,可以使用元組而不複製它們包含的物件。
以上是如何實現嚴格的弱排序 `的詳細內容。更多資訊請關注PHP中文網其他相關文章!