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。
相关文章推荐
- Effective STL学习笔记-条款13|14
- Effective STL学习笔记-条款20
- Effective STL学习笔记-条款38
- Effective STL学习笔记-条款33
- Effective STL学习笔记-条款32
- Effective STL学习笔记-条款7
- Effective STL学习笔记-条款40
- C++之Effective STL学习笔记Item21
- Effective C++笔记_条款43 学习处理模板化基类内的名称
- EffectiveC++学习笔记-条款39|40
- More Effective C++学习笔记-条款1|2|3|4
- Effective Java 学习笔记(21)
- EffectiveC++学习笔记-条款2
- Effective STL 学习笔记 32 ~ 33
- STL笔记(5)条款49:学习破解有关STL的编译器诊断信息
- Effective STL 学习笔记 Item 17: Swap Trick
- [置顶] Effective STL 学习笔记
- Effective c++ 学习笔记——之条款1:视C++为一个语言联邦
- Effective C++笔记_条款43 学习处理模板化基类内的名称
- Effective STL 学习笔记 Item 38 : Design functor classes for pass-by-value