我有一個向量QVector<float> dist;
我在哪裏維持所有維度的歐幾里德距離。我把尺寸如下:與while循環時的問題
QHash<int, QVector<float> > hash;
哪裏int
是鍵,和值在QVector<float>
再次保持。 當我試圖填補dist
的代碼如下:
for(int i = 0; i < t; i++)
{
for(int j = 1; j < t; j++)
{
while(j <= i)
j++;
dist.push_back(qPow((a[i] - hash[i].at(point)), 2) + qPow((a[j] - hash[j].at(point)), 2));
qDebug() << "Euclidean distance for Dim" << i << "and Dim" << j << " = " << dist[i];
}
}
循環計算一切,應該的,但崩潰,後一個內存錯誤:在QVector
ASSERT失敗::在「指數超出範圍「...
當我刪除while
循環(計算將是錯誤的)應用程序不再崩潰。
後while循環Ĵ將等於t。我懷疑t是散列表中的有效索引 – user1233963
什麼是'a'?什麼是「點」? –