深入学习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的历程,方便大家一起探讨和自己的备忘.因为本人 ...
随机推荐
- RCNN,Fast RCNN,Faster RCNN 的前生今世:(4) Fast RCNN 算法详解
继2014年的RCNN之后,Ross Girshick在15年推出Fast RCNN,构思精巧,流程更为紧凑,大幅提升了目标检测的速度.在Github上提供了源码. 同样使用最大规模的网络,Fast ...
- 一个关于gcd的等式的证明
证:$a > b$ 且 $gcd(a,b)=1$,有 $gcd(a^n-b^n, a^m-b^m) = a^{gcd(n, m)} - b^{gcd(n,m)}$. 证明: 假设 $n > ...
- httpclient: 设置请求的超时时间,连接超时时间等
httpclient: 设置请求的超时时间,连接超时时间等 public static void main(String[] args) throws Exception{ //创建httpclien ...
- CF1185F Two Pizzas 状压
你发现 pizza 种类数不会很多,状压一下就可以了 code: #include <bits/stdc++.h> #define M 11 #define N 100005 #defin ...
- learning java 文件过滤器
import java.io.File; public class FilenameFilterTest { public static void main(String[] args) { var ...
- Problem 4 dp
$des$ 小 $Y$ 十分喜爱光学相关的问题, 一天他正在研究折射.他在平面上放置了 $n$ 个折射装置, 希望利用这些装置画出美丽的折线.折线将从某个装置出发, 并且在经过一处装置时可以转向, 若 ...
- 【概率论】5-10:二维正态分布(The Bivariate Normal Distributions)
title: [概率论]5-10:二维正态分布(The Bivariate Normal Distributions) categories: - Mathematic - Probability k ...
- php-fpm 参数调优
php-fpm 进程池优化方法 php-fpm进程池开启进程有两种方式,一种是static,直接开启指定数量的php-fpm进程,不再增加或者减少:另一种则是dynamic,开始时开启一定数量的php ...
- word 插入表格,位置不在最左边
首先想到的是 样式的问题.
- elasticsearch_dsl.exceptions.ValidationException: You cannot write to a wildcard index.
elasticsearch_dsl.exceptions.ValidationException: You cannot write to a wildcard index. 这里是因为版本不匹配的问 ...