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

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)
例子:标准关系容器(已排序)set/multiset/map/multimap的成员函数;
 binary_search,low_bound/upper_bound/equal_range函数。

(整理自Efficient STL)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值