-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)

floataから aを減算しようとしますQVector

于 2013-08-27T17:13:46.693 に答える