什么是严厉弱排序
什么是严格弱排序?在CPP primer中,讲到map的时候,提到key必须是一个严格弱排序类型?[解决办法]严格弱排序—
什么是严格弱排序?
在CPP primer中,讲到map的时候,提到key必须是一个严格弱排序类型?
[解决办法]
严格弱排序——strict weak ordering
严格是说在判断的时候会用"<",而不是"<=",弱排序是因为,一旦"<"成立便认为存在"<"关系,返回ture,而忽略了"="关系和">"区别,把它们归结为false。
参见http://bbs.csdn.net/topics/90155069
[解决办法]
键值类型上的“小于”关系,当与自身比较时肯定会导致false结果。不能出现相互“小于”的情况,而且如果k1<k2,k2<k3那么k1必然小于k3
[解决办法]
你的理解是错误的
别随便找个帖子就当对的啊……
严格弱序是对于任意2个值a和b,不允许a<b和b<a同时成立
map之类的在查找值时是用<进行判断的,判断等价用的是!(a<b) && !(b<a)
如果允许a<b和b<a同时成立,就会找不到认为是等价的值
[解决办法]条款21: 永远让比较函数对相等的值返回false
维基百科Weak ordering
strict weak ordering confusion
Operator< and strict weak ordering
仅供参考