汎用アルゴリズムを使用したC ++のドット積
-
10-07-2019 - |
質問
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>
を参照してください。
所属していません StackOverflow