2008-11-23 14 views
1

Je suis sûr qu'il existe un astérisque utilisant les algorithmes génériques C++ stl pour implémenter le produit scalaire des éléments dans n'importe quel conteneur ordonné, tel qu'un vecteur ou une liste. Je n'ai juste pas l'impression de m'en souvenir!Produit scalaire en C++ utilisant des algorithmes génériques

La mise en œuvre 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 suis réinventer la roue et que Theres une façon de faire plus intelligent cela.

Répondre