我确定有一个聪明的单行使用C++ stl通用算法来实现任何有序容器中元素的点积,例如向量或列表.我好像不记得了!
花哨的实施将是:
templatetypename 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
从
.