`

c++ lambda

c++ 
阅读更多
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main()
{
	vector<int> v1;
	v1.push_back(1);
	v1.push_back(-2);
	vector<int> v2;
	transform(v1.begin(),v1.end(),v1.begin(),[](int i)->int{return i>0?i:-i;});
	for each (auto var in v1)
	{
		cout << var << endl;
	}

	auto t = [](int i){return ++i;};
	int j = t(3);
	cout << j << endl;

	int k = 10;
	auto t1 = [k]()mutable{return ++k;};//如果不写mutable,会出error C3491: “k”: 不能在非可变 lambda 中修改按值捕获
	cout << t1() << endl;
}

1
2
4
11

c++的lambda看起来有点怪,可能是因为看过python的lambda,有了先入为主的原因.
从一方面讲,lambda只是对c++98/03中带有operator()的局部仿函数(函数对象)包装的"语法甜点".事实上,在c++11中lambda也被处理为匿名的仿函数.
分享到:
评论

相关推荐

    C++ Lambda Story - From C++98 to C++20.pdf

    本书适⽤于所有喜欢了解现代 C++ 特性:Lambda 表达式 的 C++ 开发⼈员。 校阅历史 2019 年 03 ⽉ 25 ⽇ - 第⼀版上线! C++ Lambda Story - From C++98 to C++20.md 1/1/2023 3 / 92 2020 年 01 ⽉ 05 ⽇ - 语法、...

    C++ Lambda表达式详解

    C++ Lambda表达式详解

    在Android JNI环境下使用C++ Lambda表达式等

    本apk包只是一个C++可用性的测试,主要展示以下内容: 1、使用std::function和std...2、使用C++11的Lambda表达式 3、在C++代码中回调Java对象的方法 详细描述请参考:http://blog.csdn.net/dyw/article/details/8099947

    C++之Lambda研究.pdf

    Lambda代码段实际为一个编译器生成的类的“operator ()”函数,编译器会为每一个Lambda函数生成一个匿名的类(在C++中,类和结构体实际一样,无本质区别,除了默认的访问控制)。  对Lambda的最简单理解,是将它...

    在C++中使用Lambda函数提高性能(小文档)

    在C++中使用Lambda函数提高性能(小文档),比较详细的用例,文章很短

    C++中lambda表达式详解与原理分析.pdf

    C++中lambda表达式详解与原理分析.pdf

    C++ Lambda表达式使用详解

    C++ 11 对LB的支持,对于喜欢Functional Programming的人来说,无疑是超好消息。它使得C++进入了和C#,JavaScript等现代流行的程序设计语言所代表的名人堂。  无名引用  对于一次性的,带参数表达式,用LB可以...

    C++ lambda 捕获模式与右值引用的使用

    lambda 表达式和右值引用是 C++11 的两个非常有用的特性。 lambda 表达式实际上会由编译器创建一个 std::function 对象,以值的方式捕获的变量则会由编译器复制一份,在 std::function 对象中创建一个对应的类型...

    C++ 中的Lambda表达式写法

    在Bing上搜索 C++ lambda ,第一条记录就是MSDN上的C++ lambda的介绍。本文也是基于这篇文章来写的。 那么接下来,我们分几个部分来介绍。 一、什么是Lambda表达式 MSDN上对lambda表达式的解释: 在 C++ 11 中,...

    C++ Lambda Story

    This book shows the story of lambda expressions in C++. You’ll learn how to use this powerful feature in a step-by-step manner, slowly digesting the new capabilities and enhancements that come with ...

    C++ 中lambda表达式的编译器实现原理

    C++ 11加入了一个非常重要的特性——Lambda表达式。这篇文章主要介绍了C++ 中lambda表达式的编译器实现原理,需要的朋友可以参考下

    C++ 11 lambda 表达式

    Microsoft Visual Studio.Net(VS2010)编写的lambda表达式语法控制台程序。

    基于C++ Lambda表达式的程序优化

    主要介绍了基于C++ Lambda表达式的程序优化的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

    C++中的Lambda表达式详解

    今天看到了C++中的Lambda表达式,虽然用过C#的,但是C++的,一直没有用,也不知道怎么用,就可怜的连Lambda语法都看不懂。好了,这里就对C++中的Lambda进行一个简单的总结,就算是对自己的一个交代,我是搞C++的,我...

    C++-lambda闭包函数.pdf

    c++ C++_lambda闭包函数.pdf

    C++11 lambda表达式

    C++11引入了lambda表达式,使得程序员可以定义匿名函数,该函数是一次性执行的,既方便了编程,又能防止别人的访问。  Lambda表达式的语法通过下图来介绍:  这里假设我们定义了一个如上图的lambda表达式。...

    C++ 中的 Lambda 表达式

    C++11中才支持lambda表达式,使用lambda,可以直接代替回调函数。不需要再去写一个函数,直接在调用的地方写代码。类似于javascript中的回调。

    C++11新特性之lambda

    这是C++11新特性介绍的第三部分,涉及到C++11这次更新中较为重要的lambda表达式。  不想看toy code的读者可以直接拉到文章后看这部分的总结。  lambda 简介  熟悉Python的程序员应该对lambda不陌生。简单来说...

Global site tag (gtag.js) - Google Analytics