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