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

如何定义`

Patricia Arquette
发布: 2024-12-22 06:17:31
原创
916 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板