-1

我收到以下错误:

错误:'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;
4

2 回答 2

1

您的错误在这里:

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

在这里,您在 aQVector和 a之间进行减法const float

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

您可以通过以下方式解决它:

clusterMeanCoordinate[w].at(i) - hash_notClustered[w].at(point)
//                      ^^^^^^
于 2013-08-27T17:14:00.843 回答
0

在表达式中

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

您尝试float从 a 中减去 a QVector

于 2013-08-27T17:13:46.693 回答