質問

I <!>#180;確かにあります<!>#180; s C ++ stl汎用アルゴリズムを使用して、ベクターやリストなどの順序付けられたコンテナ内の要素のドット積を実装する賢いワンライナーです。 <!>#180; t覚えていないようです!

派手な実装は次のようになります:

template <class containerT>
typename containerT::value_type dot_product (const containerT& left, const containerT& right)
{
   assert(left.size()==right.size());
   containerT::value_type result = 0;
   for (containerT::const_iterator l_it = left.begin(), r_it = right.begin();
        l_it != left.end(); ++r_it,++l_it)
   {
      result += (*l_it) * (*r_it);
   }
   return result; 
}

i <!>#180; mが車輪を再発明し、<!>#180;これを行うためのより賢い方法があると思います。

役に立ちましたか?

解決

std::inner_productから <numeric> を参照してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top