gpt4 book ai didi

qt - 将元素插入 QSet 类

转载 作者:行者123 更新时间:2023-12-02 07:07:33 26 4
gpt4 key购买 nike

我有以下类(class):

class UnionFuzzySet : public FuzzySet
{
public:
UnionFuzzySet();
void addActivatedFuzzySet(const ActivatedFuzzySet &set);
double getValue(double value);

private:
QSet<ActivatedFuzzySet> subConclusions;
};

和方法 addActivatedFuzzySet(...):

void UnionFuzzySet::addActivatedFuzzySet(const ActivatedFuzzySet &set)
{
this->subConclusions << set;
}

它不适用于编译错误:

c:\QtSDK\Desktop\Qt\4.8.0\msvc2010\include\QtCore\qhash.h:882: ошибка: C2665: 'qHash' : 16 个重载中没有一个可以转换所有参数类型c:\QtSDK\Desktop\Qt\4.8.0\msvc2010\include\QtCore/qhash.h(62): 可能是 'uint qHash(char)'c:\QtSDK\Desktop\Qt\4.8.0\msvc2010\include\QtCore/qhash.h(63): 或 'uint qHash(uchar)'c:\QtSDK\Desktop\Qt\4.8.0\msvc2010\include\QtCore/qhash.h(64): 或 'uint qHash(signed char)'c:\QtSDK\Desktop\Qt\4.8.0\msvc2010\include\QtCore/qhash.h(65): 或 'uint qHash(ushort)'c:\QtSDK\Desktop\Qt\4.8.0\msvc2010\include\QtCore/qhash.h(66): 或 'uint qHash(short)'c:\QtSDK\Desktop\Qt\4.8.0\msvc2010\include\QtCore/qhash.h(67): 或 'uint qHash(uint)'c:\QtSDK\Desktop\Qt\4.8.0\msvc2010\include\QtCore/qhash.h(68): 或 'uint qHash(int)'c:\QtSDK\Desktop\Qt\4.8.0\msvc2010\include\QtCore/qhash.h(69): 或 'uint qHash(ulong)'c:\QtSDK\Desktop\Qt\4.8.0\msvc2010\include\QtCore/qhash.h(77): 或 'uint qHash(long)'c:\QtSDK\Desktop\Qt\4.8.0\msvc2010\include\QtCore/qhash.h(78): 或 'uint qHash(quint64)'c:\QtSDK\Desktop\Qt\4.8.0\msvc2010\include\QtCore/qhash.h(86): 或 'uint qHash(qint64)'c:\QtSDK\Desktop\Qt\4.8.0\msvc2010\include\QtCore/qhash.h(87): 或 'uint qHash(QChar)'c:\QtSDK\Desktop\Qt\4.8.0\msvc2010\include\QtCore/qhash.h(88): 或 'uint qHash(const QByteArray &)'c:\QtSDK\Desktop\Qt\4.8.0\msvc2010\include\QtCore/qhash.h(89): 或 'uint qHash(const QString &)'c:\QtSDK\Desktop\Qt\4.8.0\msvc2010\include\QtCore/qhash.h(90): 或 'uint qHash(const QStringRef &)'c:\QtSDK\Desktop\Qt\4.8.0\msvc2010\include\QtCore/qhash.h(91): 或 'uint qHash(const QBitArray &)'在尝试匹配参数列表“(const ActivatedFuzzySet)”时​​

请告诉我,我哪里做错了?

最佳答案

QSet 内部使用哈希表。但是要将项目存储在哈希表中,您应该能够计算项目的哈希值。 qHash 函数计算项目的哈希值。

如您所见,它是一些预定义的重载,允许您计算标准类型的哈希值,但如果您想存储 ActivatedFuzzySet,您应该定义函数 qHash接受你的 ActivatedFuzzySet,像这样:

uint qHash(const ActivatedFuzzySet& value)  
{
//calculate hash here
}

关于qt - 将元素插入 QSet 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9343251/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com