永远让比较函数对相等值返回false
举一个set的例子:
set<int, less_equal<int>> Set
我们多次插入同一个值,测试。
Set.insert(10);
Set.insert(10);
实际上在我的vs2015编辑器上,运行当第二个insert触发是,就会抛出一个异常,提示一个无效的比较器。
这是因为set进行插入值时,会使用这个比较器进行对比,而将 10 <= 10判断为true,此时set存在了2个相同的值。
所以,当我们实现比较函数,最好将相同的值返回false。