当前位置: 首页 > wzjs >正文

深圳建筑设计找工作哪个招聘网站网站平台做期货

深圳建筑设计找工作哪个招聘网站,网站平台做期货,wordpress菜单实现下拉,建设网络强国要有什么C Lambda 表达式详解Lambda 表达式是 C11 引入的一项重要特性,它允许在代码中内联定义匿名函数对象。Lambda 极大地简化了代码编写,特别是在使用 STL 算法时。基本语法Lambda 表达式的基本语法如下:[捕获列表](参数列表) -> 返回类型 { 函…

C++ Lambda 表达式详解

Lambda 表达式是 C++11 引入的一项重要特性,它允许在代码中内联定义匿名函数对象。Lambda 极大地简化了代码编写,特别是在使用 STL 算法时。

基本语法

Lambda 表达式的基本语法如下:

[捕获列表](参数列表) -> 返回类型 { 函数体 }

其中:

  • 捕获列表:定义 lambda 表达式可以访问的外部变量

  • 参数列表:与普通函数的参数列表类似

  • 返回类型:可以省略,编译器会自动推导

  • 函数体:包含 lambda 表达式的执行代码

捕获列表详解

捕获列表决定了 lambda 表达式如何访问外部变量:

  1. 值捕获 [=] 或 [var]

    int x = 10;
    auto lambda = [x] { return x; };  // 捕获x的值
  2. 引用捕获 [&] 或 [&var]

    int y = 20;
    auto lambda = [&y] { y++; };  // 捕获y的引用
  3. 混合捕获

    int a = 1, b = 2;
    auto lambda = [a, &b] { return a + b; };  // a值捕获,b引用捕获
  4. 隐式捕获

    [=]  // 所有变量值捕获
    [&]  // 所有变量引用捕获
    [=, &var]  // 除var外值捕获,var引用捕获
    [&, var]  // 除var外引用捕获,var值捕获

参数列表

与普通函数类似,但有以下特点:

  • 可以省略参数列表(如果没有参数)

  • 支持 auto 参数(C++14 起)

  • 支持可变参数模板

auto lambda1 = [] { return 42; };  // 无参数
auto lambda2 = [](int a, int b) { return a + b; };  // 带参数
auto lambda3 = [](auto x, auto y) { return x * y; };  // C++14 auto参数

返回类型

返回类型可以显式指定,也可以由编译器自动推导:

auto lambda1 = [] { return 42; };  // 返回类型推导为int
auto lambda2 = []() -> double { return 3.14; };  // 显式指定返回类型

当函数体中有多个 return 语句且返回类型不一致时,必须显式指定返回类型。

mutable 关键字

默认情况下,值捕获的变量在 lambda 内是 const 的。使用 mutable 可以修改这些副本:

int x = 10;
auto lambda = [x]() mutable { x++; return x; };
// x的副本被修改,但外部的x不变

示例代码

#include <iostream>
#include <vector>
#include <algorithm>int main() {// 简单lambda示例auto greet = [] { std::cout << "Hello, Lambda!\n"; };greet();// 带参数的lambdaauto add = [](int a, int b) { return a + b; };std::cout << "5 + 3 = " << add(5, 3) << "\n";// 在STL算法中使用lambdastd::vector<int> nums = {1, 2, 3, 4, 5};std::for_each(nums.begin(), nums.end(), [](int n) {std::cout << n << " ";});std::cout << "\n";// 捕获局部变量int factor = 2;auto multiply = [factor](int n) { return n * factor; };std::transform(nums.begin(), nums.end(), nums.begin(), multiply);// 引用捕获修改外部变量int sum = 0;std::for_each(nums.begin(), nums.end(), [&sum](int n) { sum += n; });std::cout << "Sum: " << sum << "\n";// mutable示例int counter = 0;auto increment = [counter]() mutable { return ++counter; };increment();increment();std::cout << "Counter inside lambda: " << increment() << "\n";std::cout << "Counter outside: " << counter << "\n";return 0;
}

高级用法

  1. 泛型 lambda (C++14):

    auto generic_lambda = [](auto x, auto y) { return x + y; };
  2. 模板 lambda (C++20):

    auto template_lambda = []<typename T>(T x, T y) { return x * y; };
  3. 立即调用 lambda:

    const int result = [](int x) { return x * x; }(5);  // 结果是25
  4. 作为函数参数传递:

    void process(const std::function<void(int)>& f) {f(42);
    }process([](int x) { std::cout << x << "\n"; });

Lambda 表达式是现代 C++ 编程中非常强大的工具,合理使用可以大大简化代码并提高可读性。


文章转载自:

http://WUqaG1sY.ypdwc.cn
http://ZEACpmUh.ypdwc.cn
http://JmGA2a1Y.ypdwc.cn
http://0M8c5vVu.ypdwc.cn
http://Y9EzOgr9.ypdwc.cn
http://2zOxEpTX.ypdwc.cn
http://nvGrYvhT.ypdwc.cn
http://SbuZYlRs.ypdwc.cn
http://cZAstJWG.ypdwc.cn
http://G1bvetlB.ypdwc.cn
http://NS07qhZJ.ypdwc.cn
http://pAvog9ds.ypdwc.cn
http://Gs2HJD1j.ypdwc.cn
http://EUBM3KCN.ypdwc.cn
http://tfXlULhl.ypdwc.cn
http://R8Qwnrs6.ypdwc.cn
http://QRGFvG73.ypdwc.cn
http://BeZSxOvC.ypdwc.cn
http://4y7CgA3L.ypdwc.cn
http://uG8Zu9kC.ypdwc.cn
http://rFxJ01pB.ypdwc.cn
http://cB5whSO4.ypdwc.cn
http://XrggNyB2.ypdwc.cn
http://of1KVNtY.ypdwc.cn
http://OhBiB2jn.ypdwc.cn
http://HjxMszYK.ypdwc.cn
http://oxRKKO5w.ypdwc.cn
http://p2yvZGTZ.ypdwc.cn
http://gH5rZD23.ypdwc.cn
http://MfoCRvxi.ypdwc.cn
http://www.dtcms.com/wzjs/762071.html

相关文章:

  • html5学习网站青岛品牌设计
  • 展示型网站设计方案企业网站建设费用价格
  • iis 创建网站企业网站建设大概多少钱
  • 室内设计师常用网站网站与新闻建设总结
  • 淘宝建设网站的好处网站开发全包
  • 有关网站开发的文献或论文最简单的网站怎么做
  • 在线网站地图生成器福州网站建设
  • 做展示类网站怎么开公众号
  • 专业做网站 郑州网站策划主要工作是什么
  • 免费商城网站建设建设网站的实验报告
  • 安徽省住房城乡建设厅网站电工营销软文100字
  • 用shopify 做网站wordpress 0day
  • 企业网站部署计划网页制作软件html代码编辑器
  • wordpress搭建商城网站别人盗用我的网站备案号怎么办
  • 聊城手机网站公司电话九江网络营销
  • 网站开发遵循做一样的模板网站会被告侵权吗
  • 网站制作公司宁波哪家好免费外链网站seo发布
  • 腾讯企业邮箱官网登录入口深圳seo优化服务商
  • 建网站需要用到什么软件成都网站建设公司服务
  • 做网站还挣钱吗wordpress换模板
  • 朝阳区seo信阳seo
  • 天津自己制作网站网站建设前的需求分析
  • 天津城市基础设施建设投资集团有限公司网站购物商城网站建设
  • 常德网站建设公司电子商务运营网站
  • 云南网站建设公司哪家好义乌婚介网站建设
  • 我的世界怎么做赞助网站photoshop网站模板
  • 做网站虚拟主机多少钱apache多网站配置
  • 全国工商网注册查询网整站seo定制
  • 深圳建设管理中心网站同ip网站有什么危害
  • 网页制作建立站点wordpress显示不了图片不显示