المنتج نقطة في C ++ باستخدام خوارزميات العامة

StackOverflow https://stackoverflow.com/questions/312077

  •  10-07-2019
  •  | 
  •  

سؤال

وأنا متأكد يك هنالك وذكية بطانة واحد باستخدام C ++ المحكمة الخاصة بلبنان خوارزميات العامة لتنفيذ المنتج نقطة من العناصر في أي حاوية أمرت، مثل ناقل أو القائمة. أنا فقط؟ ر يبدو أن نتذكر ذلك!

وتنفيذ يتوهم ستكون كما يلي:

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

وأعتقد أن وأنا إعادة اختراع العجلة وأن يك هنالك طريقة أكثر ذكاء للقيام بذلك.

هل كانت مفيدة؟

المحلول

std::inner_product من <numeric>.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top