17.C++ 函数式编程
·
一、定义
C++ 函数式编程:
以纯函数为核心,使用 Lambda、STL 算法、函数对象,不依赖可变状态,通过函数组合完成逻辑,代码更简洁、安全、易维护。
二、C++ 函数式 4 大核心
1. 纯函数(灵魂)
- 相同输入 → 永远相同输出
- 不修改外部变量、无副作用
- 多用
const,少用全局/静态变量
int add(int a, int b) const { return a + b; } // 纯函数
2. Lambda 表达式(工具)
匿名函数,让函数变成一等公民(可传参、可赋值)。
auto square = [](int x) { return x * x; };
3. 不可变性(安全)
- 尽量用
const变量、const函数 - 不修改容器,生成新数据而非原地修改
4. 函数组合(写法)
用 STL 算法替代 for/while 循环:
transform→ mapcopy_if→ filteraccumulate→ reduce
三、C++ 函数式 标准示例(一行搞定数据处理)
#include <iostream>
#include <vector>
#include <algorithm>
#include <numeric>
using namespace std;
int main() {
vector<int> v = {1,2,3,4,5};
// 1. filter:筛选偶数
vector<int> even;
copy_if(v.begin(), v.end(), back_inserter(even), [](int x){return x%2==0;});
// 2. map:全部平方
transform(even.begin(), even.end(), even.begin(), [](int x){return x*x;});
// 3. reduce:求和
int sum = accumulate(even.begin(), even.end(), 0);
cout << sum << endl; // 输出 20
return 0;
}
无循环、无修改变量、纯函数组合 → 标准函数式。
四、C++ 函数式 核心特点
- 少状态、少变量、少bug
- 并发安全(不共享可变数据)
- 代码极简洁(算法替代循环)
- 现代 C++ 主流写法(C++11 及以上必备)
- 不是新范式,是更干净的编程思想
五、汇总
C++ 函数式编程 = 纯函数 + Lambda + 不可变数据 + STL算法组合,无副作用、无循环、高安全。
总结
- 函数式是思想,C++ 完美支持
- 核心:纯函数、Lambda、函数组合
- 写法:用算法替代循环,用 const 保证不变
- 优势:简洁、安全、少bug、高并发
更多推荐

所有评论(0)