STL中容器相等(equality)和等价(equivalence)的区别

本文探讨了STL中容器的相等(equality)与等价(equivalence)的区别。相等关系基于`operator ==`,常见于无序数据,如find、count等功能。等价关系关注已排序数据中对象的相对顺序,适用于如set、map等标准关系容器,以及binary_search、low_bound等函数。
摘要由CSDN通过智能技术生成

STL中相等(equality)与等价(equivalence)的区别

1.相等(equality) 【无序数据】
相等关系是以operator ==为基础的。
a与b相等: a == b 
例子:find,count,count_if等等大部分函数

2.等价(equivalence) 【已序数据】
等价关系是以“在已排序的空间中对象值得相对顺序”为基础的。也就是说,如果两个值中任何一个(按照既定的排列顺序)都在另一个的前面,那么他们就是等价的。
a与b等价: !(a < b) && !(b < a) 或者更一般的(不是以默认的less<T>作为比较规则):
 AssociativeContainer x;
 ! x.key_compare()(a,b) && !x.key_compare()(b,a)
例子

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值