如何定义运算符
简介
严格弱排序是定义两个对象之间关系的数学概念。它指定如果对象 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中文网其他相关文章!