首页 > 后端开发 > C++ > 我应该在 C 中使用元组作为结构比较运算符吗?

我应该在 C 中使用元组作为结构比较运算符吗?

Patricia Arquette
发布: 2024-12-02 14:05:18
原创
152 人浏览过

Should I Use Tuples for Struct Comparison Operators in C  ?

使用元组和关系实现比较运算符:优点和缺点

编写具有多个元素的小型结构体可以选择使用 std 等标准类型::对或元组(来自 Boost 或 C 11)。虽然 std::pair 提供了对比较运算符的轻松访问,但它的变量名称可能很笨拙。另一方面,元组缺乏清晰度,可能会引发嵌套问题。

为了解决这些问题,一些开发人员采用带有手动实现的比较运算符的自定义结构。然而,运营商可以起到威慑作用。提出的一种解决方案通过利用为元组定义的比较操作来规避此问题:

bool operator<(MyStruct const& lhs, MyStruct const& rhs) {
  return std::tie(lhs.one_member, lhs.another, lhs.yet_more) <
         std::tie(rhs.one_member, rhs.another, rhs.yet_more);
}
登录后复制

虽然这种方法简化了正确比较运算符的创建,但可能会以性能为代价。仅当分析表明比较操作是应用程序中的瓶颈时,才建议考虑替代方法。否则,维护元组比较运算符的简便性应该超过任何潜在的性能问题。

以上是我应该在 C 中使用元组作为结构比较运算符吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板