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

南宁网站建设怎么样成都网站建设略奥网络

南宁网站建设怎么样,成都网站建设略奥网络,什么网站可以做线上小游戏,文件备案网站建设方案简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生…

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中……】🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

1.前言

本篇目的:理解C++之lambda匿名函数用法总结。

2.C++11之lambda匿名函数实例总结

  • Lambda函数是C++11引入的一种匿名函数的方式,它可以在需要函数对象的地方快速定义一个临时的函数。Lambda函数的语法相对简洁,可以方便地捕获局部变量,并且可以作为参数传递给其他函数。

  • Lambda函数的基本语法如下:

[capture](parameters) -> return_type {// 函数体
}
  • 其中,capture是指捕获的变量列表,可以是空的、值传递方式或引用传递方式。parameters是形参列表,可以为空或包含一个或多个形参。return_type是返回类型,可以省略(根据函数体自动推断)或明确指定。函数体是具体的函数实现。

以下是Lambda函数的一些常见用法和特性:

  1. 捕获变量:Lambda函数可以通过捕获变量来访问其作用域外的变量。捕获方式包括值捕获(通过值传递方式访问变量)和引用捕获(通过引用传递方式访问变量)。

  2. 自动类型推断:Lambda函数可以根据函数体自动推断返回类型,也可以显式指定返回类型。

  3. 函数重载:Lambda函数可以像普通函数一样进行重载,可以有多个具有相同函数体的Lambda函数,只需在参数列表中有所区别即可。

  4. 内联调用:Lambda函数通常是在定义的地方即被调用,也可以将Lambda函数作为参数传递给其他函数进行调用。

  5. 使用标准算法库:Lambda函数经常与标准算法库中的函数(如sort、find_if、transform等)配合使用,提供灵活的函数对象。

3.C++11之lambda匿名函数实例

1. 捕获变量、按照特定规则排序

#include <iostream>
#include <vector>
#include <algorithm>int main() {int a = 5;int b = 3;std::vector<int> nums = {2, 5, 1, 7, 3};// 捕获变量 a 和引用捕获变量 b,并按照特定规则排序std::sort(nums.begin(), nums.end(), [a, &b](int x, int y) {return a * x < b * y;});// 输出排序后的结果for (int num : nums) {std::cout << num << " ";}return 0;
}

2.自动类型推断并显式指定返回类型

#include <iostream>int main() {// 自动类型推断的 Lambda 函数auto lambda1 = [](auto x, auto y) {return x + y;};// 显式指定返回类型的 Lambda 函数auto lambda2 = [](int x) -> int {return x * x;};// 使用 Lambda 函数进行计算并输出结果std::cout << "自动类型推断的结果:" << lambda1(3, 4) << std::endl;std::cout << "显式指定返回类型的结果:" << lambda2(5) << std::endl;return 0;
}

3. 函数重载并内联调用

#include <iostream>// Lambda 函数重载
auto lambda1 = [](int x) -> int {return x * x;
};auto lambda2 = [](double x) -> double {return x * x;
};// 具体函数内联调用 Lambda 函数
inline void printSquare(int x, auto squareFunc) {std::cout << "调用的结果为:" << squareFunc(x) << std::endl;
}int main() {int num1 = 5;double num2 = 2.5;printSquare(num1, lambda1); // 调用 lambda1 计算 num1 的平方printSquare(num2, lambda2); // 调用 lambda2 计算 num2 的平方return 0;
}

4.匿名函数内联调用

#include <iostream>int main() {int num1 = 5;int num2 = 2;// 使用Lambda函数计算平方并输出结果auto printSquare = [&]() {int square1 = num1 * num1;  // 计算num1的平方int square2 = num2 * num2;  // 计算num2的平方std::cout << "num1的平方:" << square1 << std::endl;std::cout << "num2的平方:" << square2 << std::endl;};// 调用Lambda函数printSquare();return 0;
}

5.lambda 函数作为参数调用schedule 函数

#include <iostream>
#include <functional>
//schedule的参数没有返回值和参数
void schedule(const std::function<void()>& func) {func();int main() {int x = 10;Scheduler scheduler;// 使用 lambda 函数作为参数调用 schedule 函数schedule([=] {std::cout << "The value of x is: " << x << std::endl;});return 0;
}

6.类中的lambda函数作为参数调用schedule 函数

#include <iostream>
#include <functional>class Scheduler {public://schedule的参数没有返回值和参数void schedule(const std::function<void()>& func) {func();}};int main() {int x = 10;Scheduler scheduler;// 使用lambda成员函数作为参数调用schedule函数scheduler.schedule([=] {schedule([=] {std::cout << "The value of x is: " << x << std::endl;});return 0;
}

7.lambda函数作为参数调用schedule函数,并将返回值放在匿名回调函数中返回。

void schedule(const std::function<void(int x)>& func) {int ret = 100;func(100);}int main() {int x = 10;//schedule([&](int y) {std::cout << "The value of x is: " << x << std::endl;std::cout << "The value of y is: " << y << std::endl;});return 0;
}
http://www.yayakq.cn/news/913657/

相关文章:

  • 做网站和做软件哪个赚钱精品课程网站建设现状
  • 南乐网站建设公司搜公司名到公司的网站
  • 免费网站入口网站免费进公司企业邮箱号
  • 六安网站建设价格免费给别人开发网站
  • 浏览网站时弹出的广告是谁给做的wordpress 制作widget
  • wordpress显示文章图片外贸网站建设和seo
  • 重庆网网站建设公司购物网站建设合同
  • 国内自适应网站案例可以引流推广的app
  • 网站建设书本线上设计师网站
  • 劳务派遣东莞网站建设报名网站建设
  • 微信订阅号做网站广州做网站报价
  • 手机好看网站模板h5页面怎么做
  • 自助网站建设费用企业工商信息查询平台
  • 网站做的好看术语wordpress快速部署
  • 如何制作一个网站包含多个网页软件培训心得
  • 网站怎么做优化百度能搜索到营销型网站的优点
  • 弄个网站需要多少钱wordpress登录地址
  • 美的集团网站建设vps建站教程
  • 住房与城乡建设局网站广州市住房和建设局网站
  • 顺德网站建设包括哪些平面设计有哪些网站
  • 做网站背景图片要多大全媒体广告加盟
  • 音乐分享网站源码物流网站建设模板下载
  • 婚恋网站 备案条件网站做微信支付对接
  • 电子商务平台网站模板商标注册名字查询系统
  • 网站推广总结网站编辑的栏目怎么做
  • 网站建设与管理试题答案wordpress xml-rpc
  • 网站建设方案书范本营销型企业网站建设包括什么
  • 做企业网站不好混dw软件
  • 山东兴宇建设工程网站wordpress ck播放器
  • 什么是网站的根目录如何做网站视频