プログラミングの課題でユークリッド ベクトルを実装しようとしています。operator* をオーバーロードして、任意の同じ次元を持つ 2 つのベクトルの内積計算を提供する必要があります。たとえば、3D ベクトルとして:
ベクトル<3> v1、v2; //2 つの 3D ベクトル。
double dotProduct = v1 * v2;
dotProduct の値は v1[0]*v2[0]+v1[1]*v2[1]+v1[2]*v2[2] である必要があります
したがって、私の問題は、numeric.h ヘッダー ファイルで明示的なループと std::accumulate() 操作を使用せずにこの値を取得する方法ですか? この課題ではそれらが禁止されているためです。
PS私はSTLアルゴリズムと一緒にfunctor(自己定義)を使うかもしれません。