Qt 在QSet类中插入元素
我有以下课程:Qt 在QSet类中插入元素,qt,Qt,我有以下课程: class UnionFuzzySet : public FuzzySet { public: UnionFuzzySet(); void addActivatedFuzzySet(const ActivatedFuzzySet &set); double getValue(double value); private: QSet<ActivatedFuzzySet> subConclusions; }; 类联合模糊集:公共
class UnionFuzzySet : public FuzzySet
{
public:
UnionFuzzySet();
void addActivatedFuzzySet(const ActivatedFuzzySet &set);
double getValue(double value);
private:
QSet<ActivatedFuzzySet> subConclusions;
};
类联合模糊集:公共模糊集
{
公众:
联合模糊集();
void addActivatedFuzzySet(const ActivatedFuzzySet&set);
双值(双值);
私人:
QSet分包结论;
};
方法addActivatedFuzzySet(…):
void UnionFuzzySet::addActivatedFuzzySet(const ActivatedFuzzySet&set)
{
此->子结论所有数据类型都不能设置为qhash中的模板。
请阅读qt文档页面:
如果您将指针设置为指向您的类型而不是类型,则它应该是ok的。QSet
在内部使用哈希表。但要将项存储在哈希表中,您应该能够计算项的哈希。qHash
函数会计算项的哈希
如您所见,它是一些预定义的重载,允许您计算标准类型的哈希值,但是如果您想存储ActivatedFuzzySet
,您应该定义接受ActivatedFuzzySet
的函数qHash
,如下所示:
uint qHash(const ActivatedFuzzySet& value)
{
//calculate hash here
}
但是他想要一个基于项等价的集合,而不是基于指针等价的集合。
uint qHash(const ActivatedFuzzySet& value)
{
//calculate hash here
}