QT中QSet容器报错: error: C2678: 二进制“==”: 没有找到接受“const Key类型的左操作数的运算符。
该报错定位到qHash.h里。问题出在使用QSet存放了自定义的类。
解决方法:在类外重载(==)操作符和重写全局函数qHash.
具体如下:
头文件:
//操作符重载(==)
bool operator ==(const Card& left,const Card& right);
//重写全局函数qHash
uint qHash(const Card& card);
源文件:
bool operator ==(const Card& left,const Card& right)
{return(left.Point() == right.Point() && left.Suit() == right.Suit());
}uint qHash(const Card &card)
{return card.Point() * 100 + card.Suit();
}
Card是我放到容器的自定义类,第一个重载操作符中,参数是容器的成员(两个自定义类)。比较的是容器里两个自定义类的成员变量,Point()和Suit()方法是获取类中的成员变量。简单来说你将你的类换上去再访问你的类的成员变量就行了。
第二个是重写qHash函数,计算的是传进来的类的哈希值。
我这里写的是斗地主游戏的卡牌类,哈希值都不同,所以随便写个式子是他的哈希值不同即可。
QT中QSet容器报错: error: C2678: 二进制“==”: 没有找到接受“const Key类型的左操作数的运算符。相关推荐
- ERROR:C2678 二进制“<”: 没有找到接受“const _Ty”类型的左操作数的运算符(或没有可接受的转换)
[1]复现问题 为了更精确的分析,先用最简单的示例复现此错误场景,代码如下: #include <map> #include <string>struct Section {i ...
- C2678 二进制“<“:没有找到接受“ const_Ty“类型的左操作数的运算符
C2678 二进制"<":没有找到接受" const_Ty"类型的左操作数的运算符 运行c++程序时遇到上述错误,点击VS中的错误后发现无法定位到错误所在 ...
- 【C++】c++编译错误-- C2678 二进制“=”: 没有找到接受“_Ty”类型的左操作数的运算符(或没有可接受的转换)
[C++]c++编译错误-- C2678 二进制"=": 没有找到接受"_Ty"类型的左操作数的运算符(或没有可接受的转换) 代码: //by 鸟哥 rever ...
- c++编译错误-- C2678 二进制“=”: 没有找到接受“_Ty”类型的左操作数的运算符(或没有可接受的转换)
代码: //by 鸟哥 reverse引起的编译错误 //有疑问请留言或加群 1032082534 #include<iostream> #include<algorithm> ...
- 在Linux中安装MySQL报错“error: Failed dependencies: mysql-community-libs(x86-32) >= 5.7.9 is needed by my“
异常 在Linux中安装MySQL报错: 原因 因为缺少相关的依赖,所以要先安装这些依赖才能安装MySQL成功. 解决 (注意:这种方法是错误的,安装后并不能启动MySQL成功) 在每个安装指令后面添 ...
- 【错误记录】Visual Studio 中编译 NDK 报错 ( error : cannot use ‘throw‘ with exceptions disabled )
文章目录 一.报错信息 二.解决方案 一.报错信息 使用 Visual Studio 2019 编译 Android NDK 项目 , 报错如下 : 已启动生成- 1>------ 已启动生成: ...
- Eclipse中mvn install 报错error in opening zip file
报错信息 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (de ...
- 微信小程序报错 Error: errCode: -501007 invalid parameters | errMsg: Invalid Key Name: _openid
错误原因: _openid不能主动设置 错误代码: db.collection('FixedStore').add({data: {fixedAudit: false, //审核状态fixedMerc ...
- mongodb中文件导入报错error inserting documents解决方法
相信很多新接触mongdb的朋友在导入数据时都或多或少的遇上些许问题,下面就我遇上的问题做个简单记录. 安装完MongoDB会自带个导入工具:mongoimport,导入的指令为 Usage:mong ...
最新文章
- 定时器有几种实现方式?
- JS实现动态生成表格并提交表格数据向后端 表格中数据转为json
- 全行业的关键点是探索数据的价值 挖掘商业模式
- 【NLP技术应用】工业界求解NER问题的12条黄金法则
- 每天,每周,每月,每年程序员该做的事情
- 简单阻容降压电路图_升压降压芯片电路
- h5页面禁止复制_H5移动端页面禁止复制技巧
- 懂技术对产品有哪些帮助?
- .NET、C#和ASP.NET三者之间的区别与联系
- ssrs筛选器_SSRS ReportServer:服务性能计数器指南
- Android 学习笔记 Service服务与远程通信...(AIDL)
- linux下查看ntp对时的命令,linux 查看服务器时间命令
- effective java读书笔记12:考虑实现Comparable接口
- RS编码的matlab仿真
- 字体,Web安全字体,serif和sans serif区别,免费商用中文字体等
- dns服务器怎么优化,SmartDNS 高性能本地DNS服务器,优化网速
- 一日精通python编程_爱上Python 一日精通Python编程 [Learn Python in One Day and Learn it Well ]...
- ASP.NET CORE的服务注册方法
- nove6怎么升级鸿蒙系统,华为手机怎么升级鸿蒙,华为鸿蒙系统支持手机型号大全...
- xshell 6顶部工具栏找不到