首页 >后端开发 >C++ >如何定义`

如何定义`

Patricia Arquette
Patricia Arquette原创
2024-12-22 06:17:31947浏览

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