使用元组和关系实现比较运算符:优点和缺点
编写具有多个元素的小型结构体可以选择使用 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中文网其他相关文章!