深入学习c++--lambda函数
1. 简单使用
#include <iostream>
#include <functional>
using namespace std; struct Print {
void operator()(int a, int b, int c) const
{
cout << "a " << a << " b " << b << " c " << c << endl;
}
}; void printInfo(int a, int b, int c)
{
cout << "a " << a << " b " << b << " c " << c << endl;
} template<typename T1, typename T2, typename T3>
void templatePrint(T1 a, T2 b, T3 c)
{
cout << "a " << a << " b " << b << " c " << c << endl;
} struct TemplatePrint {
template<typename T1, typename T2, typename T3>
void operator()(T1 a, T2 b, T3 c) const {
cout << "a " << a << " b " << b << " c " << c << endl;
}
}; template<typename Func>
void printUserFunc(Func func, int a, int b, int c)
{
func(a, b, c);
} int main()
{
Print printUserClass;
TemplatePrint printUserTempClass; printInfo(, , );
templatePrint(, , );
printUserClass(, , );
printUserTempClass(, , ); // lambda c++
auto local = [](int a, int b, int c) {
cout << "a " << a << " b " << b << " c " << c << endl;
};
local(, , ); printUserFunc(local, , , ); //lambda c++
printUserFunc([](int a, int b, int c) {
cout << "a " << a << " b " << b << " c " << c << endl;
},
, , ); // 值拷贝
int a = , b = , c = ;
auto local2 = [a, b, c] () {
cout << "a " << a << " b " << b << " c " << c << endl;
};
local2(); //传引用
auto local3 = [&] () { // &:外部引用 和 =: 外部拷贝
cout << "a " << a << " b " << b << " c " << c << endl;
};
local3(); return ;
}
深入学习c++--lambda函数的更多相关文章
- Python基础总结之认识lambda函数、map函数、filter() 函数。第十二天开始(新手可相互督促)
今天周日,白天在学习,晚上更新一些笔记,希望对大家能更好的理解.学习python~ lambda函数,也就是大家说的匿名函数.它没有具体的名称,也可以叫做一句话函数,我觉得也不过分,大家看下代码,来体 ...
- Python新手学习基础之函数-lambda函数
lambda函数 在Python里除了用def定义函数外,还有一种匿名函数,也就是标题所示的lambda函数,它是指一类无需定义标识符(函数名)的函数或子程序. lambda函数的使用语法如下: la ...
- python学习笔记12(函数三): 参数类型、递归、lambda函数
一.函数参数的类型 之前我们接触到的那种函数参数定义和传递方式叫做位置参数,即参数是通过位置进行匹配的,从左到右,依次进行匹配,这个对参数的位置和个数都有严格的要求.而在Python中还有一种是通过参 ...
- 《转》Python学习(19)-python函数(二)-关于lambda
转自http://www.cnblogs.com/BeginMan/p/3178103.html 一.lambda函数 1.lambda函数基础: lambda函数也叫匿名函数,即,函数没有具体的名称 ...
- python学习2 lambda表达式
学习C#的,对这个就特别熟悉了 lambda函数,它没有名字,只有参数和表达式: lambda args: expression def func1(func,arg): return func(a ...
- C++11—lambda函数
[1]lambda表达式语法定义 lambda表达式的语法定义如下: [capture] (parameters) mutable ->return-type {statement}; (1) ...
- python学习之---匿名函数,返回函数,偏函数
1. 返回函数: 所谓的返回函数,指的是函数作为返回值.高阶函数除了可以接受函数作为参数外,同样可以接受函数作为结果返回.以下是一个可变参数的求和例子,一般求和函数是如此这般定义的: >> ...
- haskell学习笔记_函数
一开始学习函数式编程语言就被告知函数式编程语言是一种“定义式”的语言,而不是一种命令式的语言,在学习haskell的函数语法时,此感觉更加强烈,haskell的函数定义倾向于一种类似C++里面的swi ...
- Java8学习笔记----Lambda表达式 (转)
Java8学习笔记----Lambda表达式 天锦 2014-03-24 16:43:30 发表于:ATA之家 本文主要记录自己学习Java8的历程,方便大家一起探讨和自己的备忘.因为本人 ...
随机推荐
- 获取类范形的Class
public class Test<T>{ } Type genType = getClass().getGenericSuperclass(); Type[] params = ((Pa ...
- unsupervised learning: clustering介绍
unsupervised learning 上面是监督学习与无监督学习的比较,监督学习的training set是一组带label(y)的训练集,而无监督学习不带有label(y). 上图中的监督学习 ...
- MarkDowm——语法篇
前言 文档地址: http://www.markdown.cn/ 为了自己更熟悉MarkDown的语法,做个练习吧,以后博文打算用MarkDown直接写了. 标题 Markdown 支持两种标题的语法 ...
- car二手车购买原理
前提须知 1. Kbb,指著名的二手车估计网站 www.kbb.com .其中给出了具体年份里程车的参考价格. 2. Craigslist,简称 CL,著名的二手物品交易网站,美国的 58 同城. 3 ...
- 使用session存储数据
@WebServlet("/reply") public class ReplyServlet extends HttpServlet { @Override protected ...
- Greenplum 添加mirror步骤
原文链接:https://yq.aliyun.com/articles/695864 [TOC] 概述 新安装的greenplum集群只有primary节点,没有mirror.高可用性没得到保证.所以 ...
- jsp+ tinymce粘贴word
最近公司做项目需要实现一个功能,在网页富文本编辑器中实现粘贴Word图文的功能. 我们在网站中使用的Web编辑器比较多,都是根据用户需求来选择的.目前还没有固定哪一个编辑器 有时候用的是UEditor ...
- 一张图理解shell内核
#!/bin/bash name="liu de hua";#name后面=不能有空格 echo "hello word ${name}work $name"; ...
- Educational Codeforces Round 64 部分题解
Educational Codeforces Round 64 部分题解 不更了不更了 CF1156D 0-1-Tree 有一棵树,边权都是0或1.定义点对\(x,y(x\neq y)\)合法当且仅当 ...
- Xtrabackup--备份mysql
Xtrabackup介绍 Xtrabackup是由percona开源的免费数据库热备份软件,它能对InnoDB数据库和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份同样需要加表锁): ...