STL:处理两个没有输出的集合

时间:2017-08-22 14:19:32

标签: c++ stl

如果希望将两个集合的元素处理成第三个集合,可以使用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;});

必须有更好的解决方案,任何想法?

1 个答案:

答案 0 :(得分:4)

您可以使用<cfif arrayFind(TheAboveQuery ['type'], 'C') gt 0> do something </cfif> ,它完全符合您的要求:

std::inner_product

Runnable版本:https://ideone.com/zXcO2y