访问c ++地图

时间:2011-10-18 13:36:29

标签: c++ stdmap

我正在尝试从C ++中的std:map中的键访问值

假设aObject有效 Mymap有几个值。

map<myObject,int> mymap;
myObject aObject;
int value = mymap[aObject];

我是否必须重新定义operator == for myObject?

如果我不重新定义会怎么样?

1 个答案:

答案 0 :(得分:3)

std::map要求您为密钥类型重载operator<,或者提供比较器。两者都必须实施严格的弱排序。如果您不提供,您的程序将无法编译。如果你错误地实现它们(即不是严格的弱排序),你会得到垃圾结果(实际上我不知道这是否是严格意义上的这种未定义的行为)。