我正在尝试从C ++中的std:map中的键访问值
假设aObject有效 Mymap有几个值。
map<myObject,int> mymap;
myObject aObject;
int value = mymap[aObject];
我是否必须重新定义operator == for myObject?
如果我不重新定义会怎么样?
答案 0 :(得分:3)
std::map
要求您为密钥类型重载operator<
,或者提供比较器。两者都必须实施严格的弱排序。如果您不提供,您的程序将无法编译。如果你错误地实现它们(即不是严格的弱排序),你会得到垃圾结果(实际上我不知道这是否是严格意义上的这种未定义的行为)。