wruieasy 2022-11-23 22:32 采纳率: 50%
浏览 33
已结题

C++11 map使用find 报错==

定义了两个类class A,class B. 在class C中定义了map<A*,B*> maps,使用find等函数过程中报错.
错误代码:std::map<A*, B*>::iterator it = std::find(maps.begin(), maps.end(), a); //A* a;
报错信息:错误 C2678 二进制“==”: 没有找到接受“std::pair<const _Kty,_Ty>”类型的左操作数的运算符(或没有可接受的转换)
尝试给两个类重载operator ==操作符,但没用。而且,我的元素是指针,比较的值应该就是int数值吧,应该不需要重载?
希望各位能教教我,折腾的够呛!
  • 写回答

1条回答 默认 最新

  • wruieasy 2022-11-23 23:17
    关注

    真的无语,走偏了一点点,却导致这么离谱的错误。
    将std::find(maps.begin(), maps.end(), a) 改成maps.find(a)即可编译成功。
    我不知道这是什么原因!还请大佬继续指点一下!

    评论

报告相同问题?

问题事件

  • 系统已结题 12月1日
  • 创建了问题 11月23日

悬赏问题

  • ¥15 openpcdet自制数据集评估bev精度和3d精度相同
  • ¥15 excel 上下按钮 显示行
  • ¥20 云卓h12pro 数传问题
  • ¥20 请问有人知道怎么用工艺库里面的sdb文件通过virtuoso导出来library里面每个cell的symbol吗?
  • ¥20 海思 nnie 编译 报错
  • ¥50 决策面并仿真,要求有仿真结果图
  • ¥15 关于路由器的路由协议配置
  • ¥15 springboot接入微信支付SDK
  • ¥50 大区域的遥感影像匹配 怎么做啊
  • ¥15 求解答:pytorch跑yolov8神经网络受挫