我不能這樣做:徵:不能使用規範()用於Vector2i
Vector2i vec(0, 1, 2);
cout << vec.norm() << endl;
,因爲它給它提到了一個編譯器錯誤:THIS_FUNCTION_IS_NOT_FOR_INTEGER_NUMERIC_TYPES
在一些失敗的斷言。
我可以這樣做:
Vector2i i_vec(0, 1, 2);
Vector2f f_vec;
f_vec = i_vec.cast<float>();
cout << f_vec.norm() << endl;
其工作效果顯着。
問題:爲什麼norm
方法未定義爲VectorXi
的任何原因?
也許徵使用Vector
的元素類型來確定返回類型norm()
(在這種情況下是有意義的norm()
不會爲int
返回類型中所定義的)?
只是好奇。
我不認爲歐幾里得範數在整數向量空間中存在一個數學意義。你不能歸一化整數向量。 – akalenuk