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

合肥响应式网站开发深圳网站开发电话

合肥响应式网站开发,深圳网站开发电话,seo赚钱项目,闽清县城乡建设局网站我最近开了几个专栏,诚信互三! > |||《算法专栏》::刷题教程来自网站《代码随想录》。||| > |||《C专栏》::记录我学习C的经历,看完你一定会有收获。||| > |||《Linux专栏》&#xff1…

在这里插入图片描述

  • 我最近开了几个专栏,诚信互三!
    ====> |||《算法专栏》::刷题教程来自网站《代码随想录》。|||
    ====> |||《C++专栏》::记录我学习C++的经历,看完你一定会有收获。|||
    ====> |||《Linux专栏》::记录我学习Linux的经历,看完你一定会有收获。|||
    ====> |||《C#专栏》::记录我复习C#的经历,深度理解查漏补缺,不定期更新。|||
    ====> |||《计算机网络专栏》::记录我学习计算机网络,看完你一定会有收获。|||

C++仿函数周边及包装器

  • lambda表达式
    • lambad表达式的格式和注意
  • C++包装器
  • bind函数

lambda表达式

lambda表达式很久就在python,java,C#等语言流行,其意义是为了将某些实现简单的函数写在某个区域内,让代码的可读性增加,增加程序员的开发效率。

lambad表达式的格式和注意

lambda表达式的格式如下。

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

1).[捕获列表]主要捕获该局部区域内的所有参数,捕获列表中可以传递如下值。

[&]引用捕捉当前区域内部的所有参数,并且可在函数体内修改
[=]传值捕捉当前区域内所有的参数,捕捉后的参数不可在函数体内修改
[val]传值捕捉当前区域名为val的变量,不可修改。
[&val]引用捕捉当前区域名为val的变量,可修改。
其中上面的可以套用,如
[=, &val]对val引用捕捉,但对其他参数传值捕捉。
[&, val]对val传值捕捉,但对其他参数引用捕捉。
但不可重复捕捉,如[=,val]…
在类的方法内,捕捉列表还可以捕捉this指针。

2).(形参列表)和普通函数一样,我们可能需要定义一些形参,形参列表中就可以定义。
3).mutable该选项一般定义lambda表达式时都不会被加入,该选项可以让捕捉列表捕捉的变量改变属性,如[ 捕获列表 ]中,传值会导致函数体内部无法修改捕获的结果,而mutable关键字加入后,就可以被修改了。

在这里插入图片描述
在这里插入图片描述

4).-> 返回值在写lambad表达式时,都可以忽略不写,编译器会自动识别函数体内的返回值,返回。
5).{} 函数体内需要写函数的实现过程,与普通函数的实现无异。


注意:

1).lambda表达式的底层实际上是一个匿名仿函数,每个lambda表达式都通过算法生成一个唯一的类型,所有lambda表达式在未了解包装器前,只能使用auto接收。
在这里插入图片描述
2).lambda表达式本质是仿函数,仿函数本质是一个类,lambda表达式内被实现了拷贝构造,可以用另一个lambda表达式构造另一个。
在这里插入图片描述
3).lambda表达式若没有参数,则(参数列表)可以不写,但捕捉列表, 和函数体一定得写。
在这里插入图片描述

C++包装器

C++兼容C,所有C++内也可以使用函数指针类型,在前面,还存在lambda表达式表示一个函数,同时还存在仿函数可以实现向函数一样调用,已经类内的各种函数,如静态成员函数,成员函数,C++为了整合统一上面三个类型,推出了包装器
在这里插入图片描述
包装器是一个可变模板参数的模板类,Ret是function要包装的函数的返回值,后续的参数包则是要包装的函数的参数。

在这里插入图片描述
都可以使用function<ret(arg1…)> 格式包装。在这里插入图片描述
并且被包装后,它们的类型都相同。
在这里插入图片描述

包装器包装类内的函数。
在这里插入图片描述
要注意包装类内的函数,需要指定类域,同时,静态成员函数,则需要在前面加上&,而成员函数则无所谓。

所以包装器的出现让多种函数定义了相同的类型,在统一编码方面大有好处,比如回调函数。
在这里插入图片描述

bind函数

bind函数也是C++11后加入的,其作用是在传递函数参数的时候,绑定某个参数,让函数的调用更加方便。
在这里插入图片描述
bind函数接收的第一个参数是其要绑定的函数名,后续接收一个参数包,参数包可以传递占位符,或者直接将某个参数绑定
在这里插入图片描述
占位符必须从_1开始,并且要求必须是连续的,但是占位符的顺序可以是不一样的。
在这里插入图片描述
实际上,占位符中_1代表被绑定函数的第一个参数,以此类推,若想要正确调用f_bind_class,则需要将参数传递的顺序改变。
在这里插入图片描述
为了调用示例函数更加方便,我们可以将testclass绑定。
在这里插入图片描述
绑定某些参数可以让我们在调用函数时,更加方便,若使用bind函数绑定了某个参数,在使用function接收该函数的返回值时,则也不需要在模板列表中写被绑定的参数的类型
在这里插入图片描述
在这里插入图片描述

http://www.yayakq.cn/news/909538/

相关文章:

  • 做网站公司推荐甘肃制作网站
  • 什么网站可以做动画关于制作网站收费标准
  • 做网站的私活四川手机网站建设费用
  • 门户网站建设招标公告seo网站建设公司哪家好
  • 开源项目网站怎么做 带视频如何用front做网站网页
  • 做网站公司专业网站建设的公司好做吗
  • 青岛网站设计流程某网站做参考文献的书写
  • 网站编辑做多久可以升职深圳成交型网站建设公司
  • 网站建设搜索优1688网站上自己做模版
  • 除wordpressseo网站开发注意事项
  • 网站建设要托管服务器岳阳建设网站公司
  • 广州网站公司建设静态网站开发与实施的论文
  • 上海云站网络技术服务中心锡盟建设局网站
  • seo外贸仿牌网站换域名wordpress制作大型网站
  • 南昌大型网站建设公司wordpress搜索加强
  • 网站平台怎么建设电商平台开发项目
  • 网站建设讲话稿基于微信公众号开发
  • 粉红色的网站首页电商网站做互联网金融
  • 建设部科技中心网站怎么做一个静态网页
  • 在线海报设计网站网站备案要网站做才可以使用吗
  • 嘉兴企业自助建站乐清案例上传网站
  • 什么叫个人网站软件怎样做网站推
  • 珠宝公司网站模板南阳市宛城区建设局网站
  • 又快又好自助建站系统沈阳网站建设方案托管
  • 如何建导航网站简述三只松鼠网络营销方式
  • 做it的在哪个网站找工作男科医生免费咨询
  • 西宁制作网站需要多少钱优客逸家网站建设
  • 平面设计十大风格广州网站优化页面
  • 响应式布局网站建设佛山seo优化评价
  • 设计签名免费网站wordpress文章页添加小工具