C++ c++;STL映射::查找()
我使用自己的类作为std::map的键类型。地图实现如何确定两个对象何时相等C++ c++;STL映射::查找(),c++,stl,map,C++,Stl,Map,我使用自己的类作为std::map的键类型。地图实现如何确定两个对象何时相等 我知道我可以确定操作符
我知道我可以确定操作符<或Comp类型来排列元素。但是我找不到任何关于相等的东西。可以使用
操作符进行比较std::map
类实际上并不确定对象是否相等!它所关心的只是两个对象是否属于它使用的同一个等价类
Comp comp;
if (!comp(a, b) && !comp(b, a)) {
// a and b are in the same equivalence class
}
Compo
的默认定义是std::less
,也就是说,该类将等价性确定为两个对象都不小于另一个对象。@chris这是一个答案,不是注释:)啊,我忘了选择比较。这总是一件好事。
Comp comp;
if (!comp(a, b) && !comp(b, a)) {
// a and b are in the same equivalence class
}