Produit à points en C ++ utilisant des algorithmes génériques
-
10-07-2019 - |
Question
I & # 180; soyez certain qu'il y a & # 180; une astuce unique utilisant les algorithmes génériques C ++ stl pour implémenter le produit scalaire des éléments dans tout conteneur commandé, tel qu'un vecteur ou une liste. Je viens de ne pas & # 180; ne semble pas s'en souvenir!
L'implémentation de fantaisie serait:
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;
}
Je pense que je & # 180; je réinvente la roue et qu'il existe & # 180; une façon plus intelligente de le faire.
La solution
Voir std::inner_product
de <numeric>
.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow