Request_Info requestInfo;
requestInfo.askTYpe = askType;
requestInfo.askName = _getAskName(askType, jsonStr);
if(m_askIdMap.count(requestInfo) < 1){ //编译此代码报错
std::cout << "no match request:" << askType << "," << jsonStr;
}else {
}
原因分析:
执行std::map.count()函数的时候会对key的大小做比较,作为自定义类型Request_Info,本身无法做大小比较。
这个错误是由于你没有为Ecu类重载小于号运算符,而std::sort函数需要使用这个运算符来比较Ecu对象的大小。你需要在Ecu类中定义一个operator<函数,该函数接收一个const Ecu对象作为参数,然后根据ecuID_的值来返回一个布尔值,表示当前对象是否小于参数对象。具体的代码如下:
解决方案