Producto de puntos en C ++ usando algoritmos genéricos
-
10-07-2019 - |
Pregunta
I & # 180; estoy seguro de que & # 180; s es inteligente usando los algoritmos genéricos C ++ stl para implementar el producto de puntos de los elementos en cualquier contenedor ordenado, como un vector o una lista. ¡Simplemente no & # 180; ¡parece recordarlo!
La implementación elegante sería:
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;
}
Creo que yo & # 180; estoy reinventando la rueda y que & # 180; es una forma más inteligente de hacer esto.
Solución
Ver std::inner_product
de <numeric>
.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow