替代std :: inner_product算法?

时间:2014-04-25 18:48:22

标签: c++ c++-standard-library

我知道如果您处理两个不同大小的数组,std::inner_product算法会出现问题。是否有另一种标准库算法可以处理不同大小的数组,例如通过自动使用两个数组中较小的一个?

1 个答案:

答案 0 :(得分:3)

实施一个并不太难。

template <class InputIterator1, class InputIterator2, class T>
   T inner_product (InputIterator1 first1, InputIterator1 last1,
                    InputIterator2 first2, InputIterator2 last2, T init)
{
   for ( ; first1 != last1 && first2 != last2; ++first1, ++first2 )
   {
      init += (*first1)*(*first2);
   }
   return init;
}