Проблема с типами операндов

Я получаю следующую ошибку:

ошибка: нет совпадения для ‘operator-‘ (типы операндов: ‘QVector’ и ‘const float’)

при попытке сделать:

dist.push_back(qPow((clusterMeanCoordinate[t].at(i) - hash_notClustered[t].at(point)), 2) + qPow((clusterMeanCoordinate[w] - hash_notClustered[w].at(point)), 2));

Обратите внимание, что:

QHash<int, QVector<float> > clusterMeanCoordinate;
QHash<int, QVector<float> > hash_notClustered;
QVector<float> dist;

-1

Решение

Ваша ошибка здесь:

dist.push_back(
qPow( (clusterMeanCoordinate[t].at(i) - hash_notClustered[t].at(point) ), 2) +
qPow( (clusterMeanCoordinate[w] - hash_notClustered[w].at(point)), 2));
//         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Здесь вы делаете вычитание между QVector и const float :

   clusterMeanCoordinate[w] - hash_notClustered[w].at(point)
// QVector                  - const float

Вы можете решить это, выполнив:

clusterMeanCoordinate[w].at(i) - hash_notClustered[w].at(point)
//                      ^^^^^^
1

Другие решения

В выражении

clusterMeanCoordinate[w] - hash_notClustered[w].at(point)

Вы пытаетесь вычесть float из QVector,

0

По вопросам рекламы [email protected]