如果希望将两个集合的元素处理成第三个集合,可以使用STL变换算法:
// elements of x,y are multiplied, result is in r
std::transform(x.begin(),x.end(), w.begin(), back_inserter(r), [](int _x,int _w){return _x*_w;});
如果只需要r元素的总和怎么办?在以下解决方案中,r的创建是多余的:
int xwSum = 0;
std::transform(x.begin(),x.end(), w.begin(), back_inserter(r), [&xwSum](int _x,int _w){xwSum+=_x*_w; return 0;});
必须有更好的解决方案,任何想法?
答案 0 :(得分:4)
您可以使用<cfif arrayFind(TheAboveQuery ['type'], 'C') gt 0>
do something
</cfif>
,它完全符合您的要求:
std::inner_product
Runnable版本:https://ideone.com/zXcO2y