我寫了一個kd樹模板,它的參數是一個自然數K.如何消除'只使用常量表達式的索引到數組'警告?
作爲模板的一部分,我已經寫了下面的函數來計算兩個點(kd_point是一個別名之間的距離的std ::陣列)
template <unsigned K>
float kd_tree<K>::DistanceSq(const kd_point &P, const kd_point &Q)
{
float Sum = 0;
for (unsigned i = 0; i < K; i++)
Sum += (P[i] - Q[i]) * (P[i] - Q[i]);
return Sum;
}
我已經變成 「啓用C++核心檢查(發行版)」 上,它給我說警告。有沒有正確的方法來編寫此例程以消除警告?
基本上就意味着不使用原始'for'循環,使用範圍'for'循環。我不明白它是如何適用於你的情況的,但也許別人可以闡明。 – Rotem
我知道如何編寫一個循環範圍來訪問每個kd點的每個元素。 如何編寫循環的範圍來訪問兩者以計算差異? –