当前位置:   article > 正文

C++ STL transform_reduce 用法

C++ STL transform_reduce 用法

一:功能

        计算两个向量的内积,它是 std::inner_product 的泛化版本,支持lambda表达式自定义运算。

二:用法

  1. #include <iostream>
  2. #include <vector>
  3. #include <numeric>
  4. #include <execution>
  5. int main() {
  6. std::vector<int> data{1, 2, 3, 4, 5};
  7. //lambda 自定义运算
  8. auto sum_of_squares = std::transform_reduce(data.begin(), data.end(),
  9. 0, std::plus<>{}, [](int v) { return v*v; });
  10. std::cout << "sum_of_squares == " << sum_of_squares << "\n";
  11. //sum_of_squares = 55
  12. std::vector<int> coef{1, -1, 1, -1, 1};
  13. auto result = std::transform_reduce(data.begin(), data.end(),
  14. coef.begin(), 0);
  15. std::cout << "result == " << result << "\n";
  16. //result == 1*1 + 2*(-1) + 3*1 + 4*(-1) + 5*1 == 3
  17. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小惠珠哦/article/detail/920081
推荐阅读
  

闽ICP备14008679号