C++11 Function 使用场景
【1】场景分析
在一个函数内部,可能会多次用到某一段代码,一般情况是把这段用到次数较多的代码封装成一个函数。
但是,如果这段代码仅仅只在这个函数中有使用,这时封装成函数显得既麻烦又冗赘。
那么,有没有办法生成一个“临时的函数”,且“临时的函数”生命周期仅在这个函数当中?C++11中可以使用function配合lambda表达式来实现。
【2】代码示例
简单示例如下:
1 #include <iostream> 2 #include <functional> 3 4 class A 5 { 6 public: 7 void funcOld(int x, int y) 8 { 9 // -----code section 10 auto s1 = x + y; 11 // -----code section 12 auto s2 = x + y; 13 // -----code section 14 auto s3 = x + y; 15 16 std::cout << "sum :: " << s1 + s2 + s3 << std::endl; 17 } 18 19 void func(int x, int y) 20 { 21 auto func1 = [this](int x, int y) 22 { 23 return x + y; 24 }; 25 26 auto s1 = func1(x, y); 27 28 auto s2 = func1(x, y); 29 30 auto s3 = func1(x, y); 31 32 std::cout << "sum :: " << s1 + s2 + s3 << std::endl; 33 } 34 }; 35 36 void main(int argc, char *argv[]) 37 { 38 for (auto c : { "hello world !!!" }) // c++17 for 39 { 40 std::cout << c; 41 } 42 43 std::cout << std::endl; 44 A a; 45 a.func(2, 3); 46 47 system("pause"); 48 } 49 50 // run out: 51 /* 52 hello world !!! 53 sum :: 15 54 请按任意键继续. . . 55 */
Good Good Study, Day Day Up.
顺序 选择 循环 总结
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异