Effective_STL 学习笔记(二十一) 永远让比较函数对相等的值返回 false

除非比较函数总是为相等的值返回 false,否则将会打破所有的标准关联容器

不管关联容器是否允许存在副本(set、map、multiset、multimap)

对于(set、map)使用 less_equal (<=):

1   !( 10A  <= 10B ) && !( 10B <= 10A );  // 测试10A 和10B是否相等

结果为 false,当 insert(10A) 与 insert(10B) 的时候将破坏容器

对于允许存在副本的关联容器,使用 equal_range,

不能使得 10A和10B同时出现在 equal_range 范围内,一样导致容器破坏

从技术上说,用于排序关联容器的比较函数必须在它们所比较的对象上定义一个“严格弱化”

猜你喜欢

转载自www.cnblogs.com/kidycharon/p/10020922.html
今日推荐