成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C++代碼賞析:Map、Filter、Reduce

開發 前端
函數式編程中的 map、reduce、filter,它們都是一種控制。而參數 lambda 是邏輯(我們要解決的問題),它們一起組成了一個算法。最后,我再把數據放在數據結構里進行處理,最終就成為了我們的程序。

概念

出自Google的論文《MapReduce: simplified data processing on large clusters》,MapReduce是一種編程模型,用于大規模數據集(大于1TB)的并行運算。概念"Map(映射)"和"Reduce(歸約)",是它們的主要思想,都是從函數式編程語言里借來的,還有從矢量編程語言里借來的特性。它極大地方便了編程人員在不會分布式并行編程的情況下,將自己的程序運行在分布式系統上。

  • 程序 = 算法 + 數據結構
  • 算法 = 控制 + 邏輯
  • 程序復雜度 = 控制復雜度(可降低) + 邏輯復雜度(理論下限)
  • 架構或設計目的就是分離控制和邏輯

函數式編程中的 map、reduce、filter,它們都是一種控制。而參數 lambda 是邏輯(我們要解決的問題),它們一起組成了一個算法。最后,我再把數據放在數據結構里進行處理,最終就成為了我們的程序。

注:vegetarian 素食主義者


C++

map

std::transform

filter

std::remove_if

reduce

std::accumulate

例子

  1. 過濾出奇數
  2. 把上一步計算結果分別做平方處理
  3. 把上一步的結果進行求和
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>

using namespace std;

int main(){
std::vector<int> nums{ 1, 2, 3, 4, 5, 6, 7, 8, 9 };
std::vector<int> cache (nums.size());

// filter
auto it = std::copy_if (nums.begin(),
nums.end(),
cache.begin(),
[](int n){return n % 2 == 1;});
// shrink container to new size
cache.resize(std::distance(cache.begin(),it));

// map
std::transform(cache.begin(),
cache.end(),
cache.begin(),
[](int n) -> int {return n * n; });

auto result = std::accumulate(cache.begin(),
cache.end(),
0,
[] (int carry, int n){ return carry + n;});

std::cout << result << std::endl;

return 0;
}

在線測試

https://wandbox.org/permlink/yqa3d46oSx2GnVoQ


責任編輯:武曉燕 來源: 今日頭條
相關推薦

2023-01-26 23:44:41

C++代碼生命周期

2024-01-10 08:47:48

Python函數Map()

2024-11-08 12:42:34

Rustmapfilter

2024-06-04 00:20:00

Python函數

2024-07-11 12:14:20

Pythonmapfilter

2025-04-11 08:00:00

函數式編程Python

2010-06-03 16:46:23

Hadoop Map-

2023-10-30 10:29:50

C++最小二乘法

2010-01-14 14:40:21

C++代碼

2010-01-18 16:17:53

C++代碼

2011-05-18 17:56:38

C#C++

2011-05-18 18:05:47

C#C++

2024-08-19 00:01:00

2010-01-21 10:23:53

C++代碼

2017-03-28 21:25:19

無循環代碼JavaScript

2010-01-18 13:42:51

C++代碼

2010-02-02 15:59:32

C++賦值函數

2010-02-05 10:23:09

C++基本函數

2010-01-22 13:45:36

C++代碼

2013-09-05 09:50:11

C++代碼優化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天天操夜夜操 | 亚洲高清一区二区三区 | 亚洲精品一区二区三区四区高清 | 亚洲精品在线视频 | 黄色av网站在线免费观看 | 91在线观看 | 亚洲国产精品久久人人爱 | 久久国产精品91 | 91精品在线观看入口 | 日韩电影在线一区 | 亚洲精品亚洲人成人网 | 日本在线一区二区三区 | 日日骚视频 | 成人午夜网站 | 日韩精品一区二区三区中文在线 | 99在线免费观看 | 中文字幕在线精品 | 综合久久综合久久 | 久久色视频| 国产精品久久久久久久久久久久久久 | 91免费在线 | 国产一级特黄真人毛片 | h视频免费在线观看 | 一区二区三区四区在线免费观看 | 日韩欧美一区二区三区免费观看 | 国产久 | av黄色免费 | 久久久久久久国产 | 国产精品亚洲一区二区三区在线 | 精品国产三级 | 久久精品一级 | 亚洲成人午夜电影 | 久久一二 | 黄色片网站在线观看 | 午夜精品一区二区三区在线视频 | 91麻豆精品国产91久久久更新资源速度超快 | 欧美一区二区免费 | 一区二区三区亚洲 | 亚洲精品天堂 | 日中文字幕在线 | 国产午夜视频 |