访问宇宙 2023-03-03 14:58 采纳率: 80.4%
浏览 127
已结题

QT开发时系统报错error: no match for 'operator-' 如何解决?

QT开发时系统报错如下,其余代码无报错。不知道为什么只有这个运算符报错,QT也没有显示具体出错在哪一行。单机错误直接跳转到stl_alog.h了。求如何解决?


D:\QT5.12.2\Tools\mingw730_64\lib\gcc\x86_64-w64-mingw32\7.3.0\include\c++\bits\stl_algo.h:1969: **error: no match for 'operator-' (operand types are 'QKeyValueIterator<const int&, int&, QMap<int, int>::iterator>' and 'QKeyValueIterator<const int&, int&, QMap<int, int>::iterator>')**
     std::__lg(__last - __first) * 2,
               ~~~~~~~^~~~~~~~~
  • 写回答

1条回答 默认 最新

  • 社区专家-Monster-XH 2023-03-03 15:07
    关注

    基于Monster 组和GPT的调写:

    • 这个错误信息是编译器报出来的,提示在运算符 '-' 上找不到对应的操作,即操作数的类型不匹配。这个错误信息提示是针对STL算法库中的函数调用产生的错误,因此需要检查使用STL库的地方是否有问题。
    • 根据错误信息推测,可能是某个操作中使用了不同类型的迭代器,尝试将迭代器类型一致化,即将两个操作数的迭代器类型改为相同的类型。比如将 QMap<int, int>::iterator 类型的迭代器转换为 QMap<int, int>::const_iterator 类型的迭代器。或者在STL算法库函数调用前加上 typename 限定符,来告诉编译器使用该类型中定义的类型。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月11日
  • 已采纳回答 3月3日
  • 创建了问题 3月3日

悬赏问题

  • ¥15 有没有人会打学生成绩管理系统呀
  • ¥15 在使用Fiddler和夜神模拟器抓包的时候一直出现443该怎么办啊QAQ搜了好几个笔记都没有解决
  • ¥15 3x7的二维数组A、B、C,A中的任意1个数组元素与B的任意1个数组元素、同时又与C的任意1个数组元素比较,把不同位置出现相同数的比较称为无意义,反之称为有意义,把有意义的比较打印输出。
  • ¥20 预测模型怎么处理原始数据(随机森林)
  • ¥20 请问discuz3.5如何实现插入ckplayer全能播放器功能呢?
  • ¥15 thingsboard代码编译出错误
  • ¥15 博途v18仿真报错怎么解决
  • ¥15 欧姆龙plc枕式包装机 ST编程
  • ¥15 为啥快手广告联盟的广告这么难出来
  • ¥15 k8s集群重启后,kubelet一直报systemctl restart kubelet.service "Failed to delete cgroup paths"