在构造仅包含两个元素的轻量级结构时,许多开发人员选择 std::pair 因为它的内置支持对于关键操作如operator
另一种解决方案是使用 Boost 或 C 11 中的元组。虽然与 std::pair 相比,元组提供了改进的结构和清晰度,但使用它们仍然很麻烦。为了缓解这个问题,开发人员可以考虑使用基于 tie 的操作。
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); }
在这种情况下,tie 根据传递的参数创建一个引用元组。这种方法的好处包括:
私有继承时可以建议从元组作为替代方案,它展示了几个缺点:
总体而言,通过元组和 tie 实现比较运算符呈现出简化和正确操作员实施的可行选择。但是,如果分析显示比较操作是应用程序执行中的瓶颈,则应考虑并解决性能影响。
以上是元组和 `std::tie` 如何简化 C 语言中比较运算符的实现?的详细内容。更多信息请关注PHP中文网其他相关文章!