• C++11 Lambda表达式(匿名函数)


    http://www.cnblogs.com/RainyBear/p/5733399.html

    http://blog.163.com/lvan100@yeah/blog/static/68117214201392132341151/

    匿名函数,好屌的样子。

     Lambda表达式的引入标志,在‘[]’里面可以填入‘=’或‘&’表示该lambda表达式“捕获”(lambda表达式在一定的scope可以访问的数据)的数据时以什么方式捕获的,‘&’表示一引用的方式;‘=’表明以值传递的方式捕获,除非专门指出。

    Lambda函数可以引用在它之外声明的变量. 这些变量的集合叫做一个闭包. 闭包被定义在Lambda表达式声明中的方括号[]内. 这个机制允许这些变量被按值或按引用捕获.下面这些例子就是:  

    []        //未定义变量.试图在Lambda内使用任何外部变量都是错误的.
    [x, &y]   //x 按值捕获, y 按引用捕获.
    [&]       //用到的任何外部变量都隐式按引用捕获
    [=]       //用到的任何外部变量都隐式按值捕获
    [&, x]    //x显式地按值捕获. 其它变量按引用捕获
    [=, &z]   //z按引用捕获. 其它变量按值捕获
    #include "stdafx.h"
    
    #include <iostream>
    
    using namespace std;
    
    int main()
    
    {
    
        int n = 10;
    
        auto f = [&]() 
        { 
            return ++n; 
        };
    
        cout << f() << endl;
        cout << n << endl;
    }
  • 相关阅读:
    暗影精灵3安装无线网卡驱动(ubuntu16.04)
    装饰器之基本
    pyhton代码规范
    2.线程
    文件拾遗
    闭包函数
    6.文件基本操作
    1.socket网络编程
    9.异常处理
    Python语言规范
  • 原文地址:https://www.cnblogs.com/zendu/p/7249481.html
Copyright © 2020-2023  润新知