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

无锡市城市建设规划局网站鞍山做网站或

无锡市城市建设规划局网站,鞍山做网站或,福州网站建设出格,wordpress+提供下载功能✨博客主页#xff1a;何曾参静谧的博客 #x1f4cc;文章专栏#xff1a;「C/C」C/C程序设计 相关术语 Lambda表达式#xff1a;是C11引入的一种函数对象#xff0c;可以方便地创建匿名函数。与传统的函数不同#xff0c;Lambda表达式可以在定义时直接嵌入代码#xff… ✨博客主页何曾参静谧的博客 文章专栏「C/C」C/C程序设计 相关术语 Lambda表达式是C11引入的一种函数对象可以方便地创建匿名函数。与传统的函数不同Lambda表达式可以在定义时直接嵌入代码无需单独定义函数名称、参数和返回类型等信息。Lambda表达式通常用于需要定义一些简单的回调函数或者函数对象。优点简洁、效率高、更加灵活。 一、语法格式 //Lambda表达式的语法如下 [capture-list] (parameter-list) opt - return-type { function-body } [捕获列表](参数列表) 函数选项 - 返回值类型{函数体};//示例代码 auto ret [](int a,int b) - int {return a b; };1.1、捕获列表[capture-list] [] - 不捕捉任何变量[] - 捕获外部作用域中所有变量并作为引用在函数体内使用 (按引用捕获)[] - 捕获外部作用域中所有变量并作为副本在函数体内使用 (按值捕获) – 拷贝的副本在匿名函数体内部是只读的[, foo] - 按值捕获外部作用域中所有变量并按照引用捕获外部变量 foo[bar] - 按值捕获 bar 变量同时不捕获其他变量[bar] - 按引用捕获 bar 变量同时不捕获其他变量[this] - 捕获当前类中的 this 指针 – 让 lambda 表达式拥有和当前类成员函数同样的访问权限 – 如果已经使用了 或者 , 默认添加此选项 1.2、参数列表parameter-list 其中parameter-list可以包含以下内容 空参数列表()表示没有任何参数。普通参数列表(int a, double b)。可变参数列表(int a, double b, …)表示可以接受任意数量的参数。 //例如以下Lambda表达式将接受两个整数作为参数并返回它们的和 auto lambda [](int a, int b) - int { return a b; };1.3、 函数选项opt可省略 mutable: 可以修改按值传递进来的拷贝注意是能修改拷贝而不是值本身一般和[]一起 exception: 指定函数抛出的异常如抛出整数类型的异常可以使用 throw (); 1.4、返回类型 - return-type 标识函数返回值的类型当返回值为 void或者函数体中只有一处 return 的地方此时编译器可以自动推断出返回值类型时这部分可以省略 //例如以下Lambda表达式将接受两个整数作为参数并返回它们的和 auto lambda [](int a, int b) { return a b; };1.5、函数体 { function-body } 函数的实现这部分不能省略但函数体可以为空可以包含任意数量的语句。 //例如以下Lambda表达式将按值捕获变量x和y并返回它们的和 int x 1, y 2; auto lambda []() - int {int sum x y;return sum; };二、使用Lambda表达式 Lambda表达式可以像普通函数一样使用可以赋值给函数对象、作为函数参数或返回值等。下面是一些使用Lambda表达式的示例 2.1、赋值给函数对象 可以将Lambda表达式赋值给函数对象以便在其他地方使用。 #include iostream #include functionalint main() {std::functionint(int, int) add [](int a, int b) - int {return a b;};std::cout add(1, 2) std::endl; // 输出3return 0; }2.2、作为函数参数 可以将Lambda表达式作为函数参数传递用于定义回调函数等。 #include iostream #include vector #include algorithmint main() {std::vectorint vec {1, 2, 3, 4, 5};// 使用Lambda表达式定义判断是否为偶数的函数对象auto is_even [](int n) - bool {return n % 2 0;}; // 注意这里要添加分号// 使用std::count_if算法统计偶数个数int count std::count_if(vec.begin(), vec.end(), is_even);std::cout count std::endl; // 输出2return 0; }2.3、作为返回值 可以将Lambda表达式作为函数的返回值用于动态生成函数对象。 #include iostream #include functionalstd::functionint(int, int) create_adder(int n){// 使用Lambda表达式动态生成函数对象return [n](int x, int y) - int {return n x y;}; }int main(){auto adder create_adder(10);std::cout adder(1, 2) std::endl; // 输出13return 0; }2.4、匿名函数 //这个匿名函数只是被定义不会被调用。 [](){cout 这是一个Lamada匿名函数 };//匿名函数定义调用。 [](){cout 这是一个Lamada匿名函数 }();// 匿名函数的定义调用: int ret [](int a) - int {return a1; }(100); // 100是传递给匿名函数的参数// 在匿名函数外部定义变量 int a1, b2, c3; // 调用匿名函数 [](){// 打印外部变量的值cout a: a , b: b , c: c; // error, 不能使用任何外部变量 };[](){cout 使用引用的方式传递数据: ;cout a1: a , bc bc; }();// 值拷贝的方式使用外部数据 [](int m, int n)mutable{cout 使用拷贝的方式传递数据: ;// 拷贝的外部数据在函数体内部是只读的, 如果不添加 mutable 关键字是不能修改这些只读数据的值的// 添加 mutable 允许修改的数据是拷贝到函数内部的副本, 对外部数据没有影响cout a1: a , bc bc;cout m1: m , n: n; }(1, 2);
http://www.yayakq.cn/news/1976/

相关文章:

  • 网站首页快照更新快做网站时怎样申请域名
  • 可以做哪些网站有哪些网站建设如何做报价
  • 哪些做园林的网站qq群引流推广平台免费
  • 紫川网站建设wordpress 木马 查
  • 如何做网站费用多少怎么做微信公众号推文
  • 如何创建自己的网站平台免费北京西站到大兴机场
  • 网站页面优化内容包括哪些徐州做网站多少钱
  • 网站策划500字培训如何优化网站
  • 水果网店网站建设策划书wordpress 浏览器不居中
  • 网站怎么添加背景wordpress的vps建站流程
  • 建材网站建设方案上海虹桥站
  • 西乡城建局网站脚本外链平台
  • 湖南seo网站策划一键生成ppt免费
  • 一级a做爰片凤凰网站wix和WordPress做小程序
  • 网站建设挣钱网站建设工程师工资
  • 做网站和微信公众号如何招生建筑资料网
  • 山东住房和建设庭官网站官投资管理公司注册条件
  • 网站怎么做跳转链接制作网站品牌公司
  • 中国建设银行官网站账户商品网络广告创意策划
  • linux系统网站架构最新网站开发技术
  • 石家庄做网站邮箱电话南京网站建设哪里好
  • 营口网站建设哪家好淘宝客网站都用什么做
  • 宁波企业建站系统深圳市住房和建设局网站-%3e认租申请
  • 网站建设猫腻展台设计网站都有哪些
  • 建设厅公积金中心网站it外包兼职
  • 南京网站建设培训班服装设计师的个人网站
  • php外贸网站陕西省建设八大员官方网站
  • 盘锦网站建设平台黄页网站推广下载免费
  • 宁波网站建设制作哪家好网站做备案到哪去
  • 医院网站建设标书网站建设 云计算