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

温州市瓯海建设局网站做公司网站都需要什么

温州市瓯海建设局网站,做公司网站都需要什么,中信建设有限责任公司,净化网络环境网站该怎么做为什么需要lambda函数匿名函数是许多编程语言都支持的概念#xff0c;有函数体#xff0c;没有函数名。1958年#xff0c;lisp首先采用匿名函数#xff0c;匿名函数最常用的是作为回调函数的值。正因为有这样的需求#xff0c;c引入了lambda 函数#xff0c;你可以在你的…为什么需要lambda函数 匿名函数是许多编程语言都支持的概念有函数体没有函数名。1958年lisp首先采用匿名函数匿名函数最常用的是作为回调函数的值。正因为有这样的需求c引入了lambda 函数你可以在你的源码中内联一个lambda函数这就使得创建快速的一次性的函数变得简单了。例如你可以把lambda函数可在参数中传递给std::sort函数 #include algorithm #include cmath void abssort(float* x, unsigned N) { std::sort(x, x N, // Lambda expression begins [](float a, float b) { return std::abs(a) std::abs(b); }); } 你可能会问使用函数对象不是也可以吗是的函数对象当然没问题自己写的回调函数你可以传个函数指针也没有问题。他们有优点也有缺点。函数对象能维护状态但语法开销大而函数指针语法开销小却没法保存范围内的状态。如果你觉得鱼和熊掌不可兼得那你可错了。lambda函数结合了两者的优点让你写出优雅简洁的代码。 基本lambda语法 基本形式如下 [capture](parameters)-return-type {body} []叫做捕获说明符表示一个lambda表达式的开始。接下来是参数列表即这个匿名的lambda函数的参数-return-type表示返回类型如果没有返回类型则可以省略这部分。想知道为什么返回类型可以这么表示这涉及到c11的另一特性参见自动类型推导最后就是函数体部分了。 我们可以这样输出hello,world auto func [] () { cout hello,world; }; func(); // now call the function 变量捕获与lambda闭包实现 string name; cin name; [](){cout name;}(); lambda函数能够捕获lambda函数外的具有自动存储时期的变量。函数体与这些变量的集合合起来叫闭包。 [] 不截取任何变量[} 截取外部作用域中所有变量并作为引用在函数体中使用[] 截取外部作用域中所有变量并拷贝一份在函数体中使用[, foo] 截取外部作用域中所有变量并拷贝一份在函数体中使用但是对foo变量使用引用[bar] 截取bar变量并且拷贝一份在函数体重使用同时不截取其他变量[x, y] x按值传递y按引用传递[this] 截取当前类中的this指针。如果已经使用了或者就默认添加此选项。看到这不禁要问这魔法般的变量捕获是怎么实现的呢原来lambda是通过创建个小类来实现的。这个类重载了操作符()一个lambda函数是该类的一个实例。当该类被构造时周围的变量就传递给构造函数并以成员变量保存起来。看起来跟函数对象很相似。 最后lambda函数的类型是什么呢答案是std:function。 C11 的 lambda 表达式规范如下 [ capture ] ( params ) mutable exception attribute - ret { body }(1) [ capture ] ( params ) - ret { body }(2) [ capture ] ( params ) { body }(3) [ capture ] { body }(4) 其中 (1) 是完整的 lambda 表达式形式(2) const 类型的 lambda 表达式该类型的表达式不能改捕获(capture)列表中的值。(3)省略了返回值类型的 lambda 表达式但是该 lambda 表达式的返回类型可以按照下列规则推演出来 如果 lambda 代码块中包含了 return 语句则该 lambda 表达式的返回类型由 return 语句的返回类型确定。如果没有 return 语句则类似 void f(...) 函数。省略了参数列表类似于无参函数 f()。mutable 修饰符说明 lambda 表达式体内的代码可以修改被捕获的变量并且可以访问被捕获对象的 non-const 方法。 exception 说明 lambda 表达式是否抛出异常(noexcept)以及抛出何种异常类似于void f() throw(X, Y)。 attribute 用来声明属性。 另外capture 指定了在可见域范围内 lambda 表达式的代码内可见得外部变量的列表具体解释如下 [a,b] a变量以值的方式呗捕获b以引用的方式被捕获。[this] 以值的方式捕获 this 指针。[] 以引用的方式捕获所有的外部自动变量。[] 以值的方式捕获所有的外部自动变量。[] 不捕获外部的任何变量。此外params 指定 lambda 表达式的参数。 转载于:https://www.cnblogs.com/diegodu/p/6142245.html
http://www.zqtcl.cn/news/642630/

相关文章:

  • 手机网站建设动态公司做网站效果怎么样
  • 网站推广和优化教程上海网络科技有限公司招聘
  • 即墨建网站价格商城二次开发
  • 网站排名易下拉教程怎么做网店运营
  • 聊城做网站公司聊城博达海外服务器租用多少钱一年
  • 手机上网站做国外销售都上什么网站
  • 网站建设与管理报告书做电销有什么资料网站
  • 网站建设哪家最好企业商城网站建设方案
  • 舟山市建设工程质量监督站网站网页版微信二维码加载失败
  • 金融网站html5模板给自己家的公司做网站好做吗
  • 新农村建设投诉在哪个网站上海做电缆桥架的公司网站
  • 免费行情100个软件网络优化论文
  • asp.net动态的网站开发个人业务网站带后台
  • 控制网站的大量访问关于实验室建设的英文网站
  • 中国容桂品牌网站建设怎么自己做个网站做链接跳转
  • 安徽省建设工程协会网站昆明官网seo厂家
  • 品牌整合推广搜狗优化好的网站
  • 娄底手机网站制作深圳网站建设怎么做
  • 好的龙岗网站建设附近装修公司电话和地址
  • 网站后台生成文章很慢网络营销毕业设计
  • 如何把资料上传到网站什么叫高端网站定制
  • 郑州企业网站建设团队什么是交换链接
  • 如何建立一个外贸公司网站活动营销的方式有哪些
  • 上海工程造价咨询公司余姚网站seo运营
  • 小加工厂做网站wordpress免费主题破解版
  • 网站打开风险怎么解决企业建设网站网站建设公司
  • 随州网站建设公司wordpress怎样上传主题
  • 做外链等于网站更新么台州椒江网站建设
  • 自己搭建一个博客网站网络营销是什么大类
  • 10元网站备案php企业网站开发实训报告