Я получаю следующую ошибку:
ошибка: нет совпадения для ‘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;
Ваша ошибка здесь:
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)
// ^^^^^^
В выражении
clusterMeanCoordinate[w] - hash_notClustered[w].at(point)
Вы пытаетесь вычесть float
из QVector
,