zoukankan      html  css  js  c++  java
  • 初入lambda表达式 (主要是c++11)

    写一篇不猫的博文吧

       定义

       lambda表达式的定义如下

    [capture](parameters) mutable ->return-type{statement}
    

       翻译成人话就是

    1.[capture]:捕捉列表。捕捉列表总是出现在Lambda函数的开始处。实际上,[]是Lambda引出符。编译器根据该引出符判断接下来的代码是否是Lambda函数。捕捉列表能够捕捉上下文中的变量以供Lambda函数使用;

    2.(parameters):参数列表。与普通函数的参数列表一致。如果不需要参数传递,则可以连同括号“()”一起省略;

    3.mutable:mutable修饰符。默认情况下,Lambda函数总是一个const函数,mutable可以取消其常量性。在使用该修饰符时,参数列表不可省略(即使参数为空);

    4.->return-type:返回类型。用追踪返回类型形式声明函数的返回类型。我们可以在不需要返回值的时候也可以连同符号”->”一起省略。此外,在返回类型明确的情况下,也可以省略该部分,让编译器对返回类型进行推导;

    5.{statement}:函数体。内容与普通函数一样,不过除了可以使用参数之外,还可以使用所有捕获的变量。

    en,大概是这样吧

    让我们写几个程序练练手~~~

    1.简单排序

    #include <cstdio>
    #include <algorithm>
    int a[10]={0,1,2,3,4,5,6,7,8,9};
    int main(){
    	std::sort(a,a+10,[](int x,int y){return x>y;});
    	for(register int i=0;i<10;i++)
    		printf("%d
    ",a[i]);
    	return 0;
    }
    
  • 相关阅读:
    分布式系统之CAP理论杂记
    RPC详解
    玩转zookeeper命令
    NRPE介绍
    开启irqbalance提升服务器性能
    xinetd被动服务唤醒
    服务发现的基本原理[转]
    关于TCP/IP,必知必会的十个经典问题[转]
    Smart Client技术简要总结
    使用ng-grid实现可配置的表格
  • 原文地址:https://www.cnblogs.com/keshuqi/p/6366560.html
Copyright © 2011-2022 走看看