Ошибка компилятора связана с тем, что Qt просто не определил функцию qHash (), которая принимает значение типа double.Причина этого в том, что обычно плохая идея использовать числа с плавающей запятой в качестве ключей в хэше (в этом случае ваш QSet использует хэш внутри себя).
Вы говорите, что пытаетесь удалить дубликаты, ноконцепция равенства между числами с плавающей запятой нечетка в C ++, поскольку довольно трудно сказать, что любые два числа с плавающей запятой действительно равны.
(см. FAQ по C ++ относительно этой темы)
Решение вашей проблемы будет следующим:
a) Не используйте числа с плавающей запятой
b) Определите свою собственную функцию qHash, котораяудовлетворяет требованиям вашей программы таким образом, чтобы это было удовлетворительным.Определение qHash( double )
в вашем файле имплантации будет достаточно.