簡體   English   中英

使用通用算法的C ++點產品

[英]Dot product in C++ using generic algorithms

我敢肯定,使用C ++ stl通用算法的巧妙方法可以在任何有序容器(例如向量或列表)中實現元素的點積。 我只是似乎不記得了!

好的實現是:

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; 
}

我認為我正在重新發明輪子,並且有更聰明的方法可以做到這一點。

參見<numeric> std::inner_product

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM