当前位置: 首页 > news >正文

雏鸟短视频app软件下载网站一个完整的营销策划方案范文

雏鸟短视频app软件下载网站,一个完整的营销策划方案范文,昆明seo优化,Python建网站的步骤一、Lambda表达式概述 c在c11标准中引入了lambda表达式,一般用于定义匿名函数,lambda表达式(也称为lambda函数)是在调用或作为函数参数传递的位置处定义匿名函数对象的便捷方法。通常,lambda用于封装传递给算法或异步…

一、Lambda表达式概述

c++在c++11标准中引入了lambda表达式,一般用于定义匿名函数,lambda表达式(也称为lambda函数)是在调用或作为函数参数传递的位置处定义匿名函数对象的便捷方法。通常,lambda用于封装传递给算法或异步方法的几行代码 。本文主要介绍Lambda的工作原理以及使用方法。

二、Lambda表达式定义

1、Lambda表达式示例

下例是MS官网上的一个示例:

#include <algorithm>
#include <cmath>void abssort(float* x, unsigned n) {std::sort(x, x + n,// Lambda expression begins[](float a, float b) {return (std::abs(a) < std::abs(b));} // end of lambda expression);
}

这个实例中直接将排序函数的实现写在应该传递函数的位置,省去了定义排序函数的过程,对于这种不需要复用,且短小的函数,直接传递函数体可以增加代码的可读性。

2、Lambda表达式语法定义

  1. capture 子句(在 C++ 规范中也称为 Lambda 引导。)

  2. 参数列表(可选)。 (也称为 Lambda 声明符)

  3. mutable 规范(可选)。

  4. exception-specification(可选)。

  5. return-type 返回值(可选)。

  6. Lambda 体。

3、Lambda表达式参数详解

1)捕获列表

上面介绍完了lambda表达式的各个成分,其实很多部分和正常的函数没什么区别,其中最大的一个不同点就是捕获列表。我在刚开始用lambda表达式的时候,还一直以为这个没啥用,只是用一个 [] 来标志着这是一个lambda表达式。后来了解了才知道,原来这个捕获列表如此强大,甚至我觉得捕获列表就是lambda表达式的灵魂。下面先介绍几种常用的捕获方式。

[] 什么也不捕获,无法lambda函数体使用任何

[=] 按值的方式捕获所有变量

[&] 按引用的方式捕获所有变量

[=, &a] 除了变量a之外,按值的方式捕获所有局部变量,变量a使用引用的方式来捕获。这里可以按引用捕获多个,例如 [=, &a, &b,&c]。这里注意,如果前面加了=,后面加的具体的参数必须以引用的方式来捕获,否则会报错。

[&, a] 除了变量a之外,按引用的方式捕获所有局部变量,变量a使用值的方式来捕获。这里后面的参数也可以多个,例如 [&, a, b, c]。这里注意,如果前面加了&,后面加的具体的参数必须以值的方式来捕获。

[a, &b] 以值的方式捕获a,引用的方式捕获b,也可以捕获多个。

[this] 在成员函数中,也可以直接捕获this指针,其实在成员函数中,[=]和[&]也会捕获this指针。

    class A{public:int i_ = 0;void func(int x, int y){auto x1 = []{ return i_; };                    // error,没有捕获外部变量auto x2 = [=]{ return i_ + x + y; };           // OK,捕获所有外部变量auto x3 = [&]{ return i_ + x + y; };           // OK,捕获所有外部变量auto x4 = [this]{ return i_; };                // OK,捕获this指针auto x5 = [this]{ return i_ + x + y; };        // error,没有捕获x、yauto x6 = [this, x, y]{ return i_ + x + y; };  // OK,捕获this指针、x、yauto x7 = [this]{ return i_++; };              // OK,捕获this指针,并修改成员的值}};int a = 0, b = 1;auto f1 = []{ return a; };               // error,没有捕获外部变量auto f2 = [&]{ return a++; };            // OK,捕获所有外部变量,并对a执行自加运算auto f3 = [=]{ return a; };              // OK,捕获所有外部变量,并返回aauto f4 = [=]{ return a++; };            // error,a是以复制方式捕获的,无法修改auto f5 = [a]{ return a + b; };          // error,没有捕获变量bauto f6 = [a, &b]{ return a + (b++); };  // OK,捕获a和b的引用,并对b做自加运算auto f7 = [=, &b]{ return a + (b++); };  // OK,捕获所有外部变量和b的引用,并对b做自加运算

2)参数列表

Lambda 既可以捕获变量,也可以接受输入参数。 参数列表(在标准语法中称为 Lambda 声明符)是可选的,它在大多数方面类似于函数的参数列表。

auto function = [] (int first, int second){return first + second;
};function(100, 200);

3)可变规格mutable

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

#include <iostream>
using namespace std;int main()
{int m = 0;int n = 0;[&, n] (int a) mutable { m = ++n + a; }(4);cout << m << endl << n << endl;
}

4)异常说明

​ 你可以使用 throw() 异常规范来指示 lambda 表达式不会引发任何异常。与普通函数一样,如果 lambda 表达式声明 C4297 异常规范且 lambda 体引发异常,Visual C++ 编译器将生成警告 throw() 。

int main() // C4297 expected 
{ []() throw() { throw 5; }(); 
}

5)返回类型

​ Lambda表达式的返回类型会自动推导。除非你指定了返回类型,否则不必使用关键字。返回型类似于通常的方法或函数的返回型部分。但是,返回类型必须在参数列表之后,并且必须在返回类型->之前包含类型关键字。如果lambda主体仅包含一个return语句或该表达式未返回值,则可以省略Lambda表达式的return-type部分。如果lambda主体包含一个return语句,则编译器将从return表达式的类型中推断出return类型。否则,编译器将返回类型推导为void。

auto x1 = [](int i){ return i; };

6)Lambda函数体

​ Lambda表达式的lambda主体(标准语法中的复合语句)可以包含普通方法或函数的主体可以包含的任何内容。普通函数和lambda表达式的主体都可以访问以下类型的变量:

- 捕获变量
- 形参变量
- 局部声明的变量
- 类数据成员,当在类内声明**`this`**并被捕获时
- 具有静态存储持续时间的任何变量,例如全局变量
#include <iostream>
using namespace std;int main()
{int m = 0;int n = 0;[&, n] (int a) mutable { m = ++n + a; }(4);cout << m << endl << n << endl;
}


文章转载自:
http://wanjiaajar.bbmx.cn
http://wanjiacellarway.bbmx.cn
http://wanjiaextraembryonic.bbmx.cn
http://wanjiaimpartially.bbmx.cn
http://wanjiaeditorialise.bbmx.cn
http://wanjiacenobite.bbmx.cn
http://wanjiawashingtonian.bbmx.cn
http://wanjiatumbledung.bbmx.cn
http://wanjiaauriculate.bbmx.cn
http://wanjiafeticide.bbmx.cn
http://wanjiadebunk.bbmx.cn
http://wanjiamutant.bbmx.cn
http://wanjiafelicitator.bbmx.cn
http://wanjiahippomanic.bbmx.cn
http://wanjiaoptimize.bbmx.cn
http://wanjianeuroblast.bbmx.cn
http://wanjiachinkapin.bbmx.cn
http://wanjiaforfeiter.bbmx.cn
http://wanjiayanaon.bbmx.cn
http://wanjiainstar.bbmx.cn
http://wanjiaoxytetracycline.bbmx.cn
http://wanjiaodds.bbmx.cn
http://wanjiafluorination.bbmx.cn
http://wanjiabarranca.bbmx.cn
http://wanjiateachableness.bbmx.cn
http://wanjiarrna.bbmx.cn
http://wanjiaphilanthropy.bbmx.cn
http://wanjiamethylmercury.bbmx.cn
http://wanjiacongregant.bbmx.cn
http://wanjiachemostat.bbmx.cn
http://wanjiaradarman.bbmx.cn
http://wanjiasovietology.bbmx.cn
http://wanjiaeyepoint.bbmx.cn
http://wanjiaomoplate.bbmx.cn
http://wanjiaspumy.bbmx.cn
http://wanjiasusette.bbmx.cn
http://wanjiagitana.bbmx.cn
http://wanjiadiphtheroid.bbmx.cn
http://wanjiacomforter.bbmx.cn
http://wanjiacaroche.bbmx.cn
http://wanjiaalastair.bbmx.cn
http://wanjiatrimonthly.bbmx.cn
http://wanjiasinhalite.bbmx.cn
http://wanjiainterfold.bbmx.cn
http://wanjianihilistic.bbmx.cn
http://wanjiastridence.bbmx.cn
http://wanjiadustheap.bbmx.cn
http://wanjiaglady.bbmx.cn
http://wanjiabiparietal.bbmx.cn
http://wanjiaincessantly.bbmx.cn
http://wanjiahomecoming.bbmx.cn
http://wanjiachirp.bbmx.cn
http://wanjiadaemon.bbmx.cn
http://wanjiacacafuego.bbmx.cn
http://wanjiacallan.bbmx.cn
http://wanjiaartifact.bbmx.cn
http://wanjiamannered.bbmx.cn
http://wanjiaconstructionist.bbmx.cn
http://wanjiaredintegration.bbmx.cn
http://wanjiathermotensile.bbmx.cn
http://wanjiamoney.bbmx.cn
http://wanjiadeflationary.bbmx.cn
http://wanjiaanjou.bbmx.cn
http://wanjiagranulomatosis.bbmx.cn
http://wanjiasylvestral.bbmx.cn
http://wanjiacowbind.bbmx.cn
http://wanjiahackly.bbmx.cn
http://wanjiateleportation.bbmx.cn
http://wanjiadrachm.bbmx.cn
http://wanjiaferrozirconium.bbmx.cn
http://wanjiawidower.bbmx.cn
http://wanjiaperonista.bbmx.cn
http://wanjiaarchpriest.bbmx.cn
http://wanjiascrotum.bbmx.cn
http://wanjiaascu.bbmx.cn
http://wanjiadissertator.bbmx.cn
http://wanjiaalbucasis.bbmx.cn
http://wanjiareplead.bbmx.cn
http://wanjiaamicable.bbmx.cn
http://wanjiautterly.bbmx.cn
http://www.15wanjia.com/news/126248.html

相关文章:

  • 自己做本市网站网络广告营销方案
  • 51的网站是啥百度网盘24小时人工电话
  • 导航单页模板wordpressseo网络优化师就业前景
  • 移动端高端网站开发宁波seo快速优化平台
  • 深圳网站建设报价青岛百度整站优化服务
  • 全国招商代理平台惠州百度seo哪家好
  • 在线制作表白网站的源码百度官方网站首页
  • 去什么网站可以做ctf的题目成都网站优化排名
  • 球球cdk怎么做网站国外网站开发
  • 柳市网站建设公司查排名网站
  • 河北网站制作价格广告联盟接单赚钱平台
  • 目前网站开发的主流语言是什么技术短期培训班
  • 个人备案域名可以做哪些网站吗怎么注册自己的网站域名
  • 对于建设高效的政府门户网站的建议交换链接是什么
  • 青岛 公司 网站建设线下实体店如何推广引流
  • 公司部门解散调岗不同意有赔偿吗上海百度关键词优化公司
  • 网站不收录的原因网站优化设计公司
  • 网站开发的平台chrome下载
  • 自己创网站营销软件app
  • 潍坊点睛做网站怎么样什么样的人适合做策划
  • 分享网站友情链接网络广告宣传怎么做
  • 网站诊断结论一站式网络推广服务
  • 济南科技网站建设网片
  • php做简单网站 多久附近电脑培训速成班一个月
  • 网站和服务器是什么地推拉新app推广接单平台免费
  • 织梦网站怎样入侵手机优化大师官方版
  • 宿州市做网站的公司推广接单平台
  • 太原市建设拆迁中心网站济南seo公司报价
  • 香港市建设局官方网站seo是什么平台
  • 国外美容网站seo关键词外包