zoukankan      html  css  js  c++  java
  • lamda表达式

    C++ 11中的Lambda表达式用于定义并创建匿名的函数对象,以简化编程工作。
    C++11中,官方似乎一直鼓励大家用lambda表达式,而不是函数对象,lambda表达式更易于使用和理解。
    lambda表达式的语法如下:
    [capture_block](parameters) exceptions_specification -> return_type {body}
    [捕捉快](参数) 异常 -> 返回值类型 {主体}
    [] 不捕获任何变量
    [=] 拷贝捕获
    [&] 引用捕获
    [=, &] 拷贝与引用混合
    [bar] 指定引用或拷贝
    [this] 捕获 this 指针
    int i = 1024;
    1、创建一个匿名函数并执行
    []{cout << "Hello,Worldn";}();
    2、传入参数 auto func = [](int i) { cout << i<<endl;}; func(i);
    3、捕获[] [] 不捕获任何变量
    4、[=] 拷贝捕获 auto func = [=] { cout << i <<endl;}; // [=] 表明将外部的所有变量拷贝一份到该函数内部 func();
    5、[&] 引用捕获 auto fun1 = [&]{cout << &i << endl;};//[&] 表明将外部的所有变量的引用,拷贝一份到该函数内部。 fun1();
    6、[=, &] 拷贝与引用混合 auto fun1 = [=, &i]{cout << "i:" << &i << endl;cout << "j:" << &j << endl;}; // 默认拷贝外部所有变量,但引用变量i fun1();
    7、[bar] 指定引用或拷贝 auto fun1 = [i]{cout <<i<<&i<<endl;}; auto fun1 = [&i]{cout <<i<<&i<<endl;}; fun1();
    8、[this] 捕获 this 指针 auto fun = [this]{this->hello();};// 这里this调用的就是class的对象了 fun();
  • 相关阅读:
    SAMBA服务初学练习
    NFS与AutoNFS实例
    NTP服务简介
    DHCP服务简单搭建步骤
    HBase文档操作--练习篇
    Hadoop体系结构管理
    HBase表结构设计--练习篇
    HBase备份恢复练习
    MongoDB管理练习
    24_BlockingQueue接口
  • 原文地址:https://www.cnblogs.com/osbreak/p/9212544.html
Copyright © 2011-2022 走看看