定义运算符 对于 n 元组上的严格弱排序
问题:
如何实现遵循严格弱排序概念的 n 元组(例如 3 元组)的运算符?
答案:
理解严格弱排序小于: 一个对象被认为“小于”另一个(即,a
实现运算符
struct S { ThingA a; ThingB b; }; bool operator<(S const& lhs, S const& rhs) { return std::tie(lhs.a, lhs.b) < std::tie(rhs.a, rhs.b); }定义
对于 n 元组的运算符,您必须建立确定一个元组何时被视为等于或小于另一个元组的条件。这取决于元组的特定数据结构和语义。
bool operator==(S const& lhs, S const& rhs) { return std::tie(lhs.a, lhs.b) == std::tie(rhs.a, rhs.b); }以 std::tuple 为例C 标准库的 std::tuple 类实现了正确的这假设 ThingA 和 ThingB 已经实现了严格的弱排序。您还可以使用类似的方法实现相等:
以上是如何定义严格的弱排序 `的详细内容。更多信息请关注PHP中文网其他相关文章!