• transform、accumulate —— C++ 下的 MapReduce


    • accumulate:Map,逐元素分别单独处理;
      • 注:for_each:不改变区间元素的内容,所以更多的是输出打印等功能;
    • accumulate:Reduce,整体化归为一个单独的数值;

    两个函数均位于<algorithm>头文件中。

    1. transform

    • 每个元素都做平方处理:
    vector<int> nums = {1, 2, 3, 4, 5};
    vector<int> numsSquare(nums.size());
    transform(nums.begin(), nums.end(), numsSquare.begin(), [](int x){ return x*x; })

    2. accumulate

    • 全部元素异或起来

      vector<int> nums = {1, 2, 2, 3, 3, 3, 3};
      accumulate(nums.begin(), nums.end(), 0, [](int x, int y) { return x^y; });
                      // 最终得到的结果是 1,唯一的一个出现奇数次,其他均是出现偶数次
  • 相关阅读:
    ACE_TASK学习
    tomcat:8005端口启动失败的解决办法
    centos7下安装jdk8
    解决github下载慢的一种方法
    page
    数据库
    做jar
    mvc:annotation-driven
    web.xml
    jsp九大内置对象el11内置对象
  • 原文地址:https://www.cnblogs.com/mtcnn/p/9423646.html
Copyright © 2020-2023  润新知