您的位置:首页 > Web前端

Effective STL学习笔记-条款21

2017-09-26 21:55 225 查看

永远让比较函数对相等值返回false

举一个set的例子:

set<int, less_equal<int>> Set


我们多次插入同一个值,测试。

Set.insert(10);
Set.insert(10);


实际上在我的vs2015编辑器上,运行当第二个insert触发是,就会抛出一个异常,提示一个无效的比较器。

这是因为set进行插入值时,会使用这个比较器进行对比,而将 10 <= 10判断为true,此时set存在了2个相同的值。

所以,当我们实现比较函数,最好将相同的值返回false。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  stl 容器 c++