c++ - std::inner_product 算法的替代方案?

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

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

最佳答案

实现起来并不太难。

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

关于c++ - std::inner_product 算法的替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23300786/

相关文章:

c++ - "unsigned int"是否被视为一种数据类型?

c++ - 标准 C++ 库中 size_t 的有符号变体

c++ - clang 中 regex_constants 的错误实现?

c++ - std::vector 的容量会减少吗?

C++ 自定义分配器和 STL 容器

c++ - 为什么要为 char* 和 wchar* 而不是其他原始类型制作一个特殊版本的 uninitialized_copy()?

c++ - 在 vector 容器中使用的对象中具有 const 变量

c++ - 在C++中初始化一个大小不固定的数组

c++ - C++ 是否保证标准容器进行比较时操作数的顺序?

c++ - ostream插入运算符与其非成员重载的关系