仿函数与lambda

Posted 阿龙亡命天涯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了仿函数与lambda相关的知识,希望对你有一定的参考价值。

  1. 仿函数

    sort要填对象,这是降序
    若要升序,则改成:a<b


2. Lambda表达式
刚刚的排序可以这么写:

以上是降序

smallest lambda:[ ] //最小lambda


有点函数的感觉


->int : 推导返回值是int类型

闭包[ ] 与mutable

报错
在[ ]这里改成[&]就可以了(有点引用的感觉)
打印出来x y是会被修改的 打印出来是50 50


这个打印出来是 50 50 100 200(复制 产生副本)
也就是没有被修改,如果不加mutable修饰,会报错,显示x y为只读,不能被修改

只想要x参数的话,那就在[ ] 中写x,不是引用,说明是复制的方式传进来的。
写成&x就是引用的方式传进来了
(标准说法:值传递 引用传递)

  1. Lambda的应用

    在Qt中的应用:

    这两行信号与槽连接 结果一样

lambda就是匿名的仿函数

以上是关于仿函数与lambda的主要内容,如果未能解决你的问题,请参考以下文章

《STL源码剖析》——第七八章:仿函数与接配器

仿函数及其应用

C++priority_queue模拟实现与仿函数讲解

C++priority_queue模拟实现与仿函数讲解

STL 仿函数(函数对象)

关于仿函数能够保存状态的问题