Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/163.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++中的点积使用泛型算法 我确信使用C++ STL泛型算法有一个聪明的一条直线,用于实现任何有序容器中元素的点积,例如向量或列表。我就是不记得了_C++_Generics_Dot Product - Fatal编程技术网

C++中的点积使用泛型算法 我确信使用C++ STL泛型算法有一个聪明的一条直线,用于实现任何有序容器中元素的点积,例如向量或列表。我就是不记得了

C++中的点积使用泛型算法 我确信使用C++ STL泛型算法有一个聪明的一条直线,用于实现任何有序容器中元素的点积,例如向量或列表。我就是不记得了,c++,generics,dot-product,C++,Generics,Dot Product,最理想的实现方式是: 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

最理想的实现方式是:

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; 
}
我认为我正在重新发明轮子,而且有一种更聪明的方法可以做到这一点。

从中看。

从中看