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

公司做的网站版权归谁所有什么是关键词推广

公司做的网站版权归谁所有,什么是关键词推广,延吉网站建设,arukas搭建wordpresslambda函数简介lambda函数是C11标准新增的语法,也称为lambda表达式或匿名函数。lambda函数的特点是:距离近、简洁、高效和功能强大。优点声明式编程风格:就地匿名定义目标函数或函数对象,有更好的可读性和可维护性。简洁&#xff…

lambda函数简介

lambda函数是C++11标准新增的语法,也称为lambda表达式或匿名函数。

lambda函数的特点是:距离近、简洁、高效和功能强大。

优点

  • 声明式编程风格:就地匿名定义目标函数或函数对象,有更好的可读性和可维护性。

  • 简洁:不需要额外写一个命名函数或函数对象,,避免了代码膨胀和功能分散。

  • 更加灵活:在需要的时间和地点实现功能闭包。

基本用法

[caoture] (params) opt -> ret {body;};
[捕获列表] (参数列表) 函数选型 -> 返回类型 {函数体} ;

注意

opt选项:

mutable:可以修改按值传递进来的拷贝(注意是能修改拷贝,而不是值本身)
exception: 指定函数抛出的异常,如抛出整数类型的异常,可以使用 throw ();
void test4()
{auto f = [](int a) -> int {return a + 1; };//捕获列表        cout << f(1) << endl;
}

参数列表

参数列表是可选的,类似普通函数的参数列表,如果没有参数列表,()可以省略不写。
与普通函数的不同:
1. lambda函数不能有默认参数。
2. 所有参数必须有参数名。
3. 不支持可变参数。

返回类型

用后置的方法书写返回类型,类似于普通函数的返回类型,如果不写返回类型,编译器会根据函数体中的代码推断出来。
如果有返回类型,建议显式的指定,自动推断可能与预期不一致。

函数体

和普通函数的函数体一样

捕获列表

通过捕获列表,lambda函数可以访问父作用域中的非静态局部变量(静态局部变量可以直接访问,不能访问全局变量)。
捕获列表书写在[]中,与函数参数的传递类似,捕获方式可以是值和引用。
以下列出了不同的捕获列表的方式。

补充:

[ this ] --捕获当前类的this指针,让lambda表达式拥有和当前类成员函数同样的访问权限

分别使用值捕获和引用捕获

void test()
{int a = 1;double b = 2.2;auto f1 = [](int a){cout << "a=" << a << endl;};auto f2 = [&](double m)->double{m++;return m;};f1(a);cout << "b=" << f2(b) << endl;
}

隐式捕获

void test_2()
{int a = 1;double b = 2.3;auto f1 = [=]{cout << "a=" << a << ", b=" << b << endl;cout << "a=" << ++a << ", b=" << ++b << endl;};auto f2 = [&]{cout << "a=" << a << ", b=" << b << endl;cout << "a=" << ++a << ", b=" << ++b << endl;};f2();f1();
}

混合方式捕获

lambda函数还支持混合方式捕获,即同时使用显式捕获和隐式捕获。
混合捕获时,捕获列表中的第一个元素必须是 = 或 &,此符号指定了默认捕获的方式是值捕获或引用捕获。
需要注意的是:显式捕获的变量必须使用和默认捕获不同的方式捕获。

修改值捕获变量的值

在lambda函数中,如果以传值方式捕获变量,则函数体中不能修改该变量,否则会引发编译错误。
在lambda函数中,如果希望修改值捕获变量的值,可以加mutable选项,但是,在lambda函数的外部,变量的值不会被修改。
void test_4()
{int a = 123;auto f = [a]()mutable { cout << ++a << endl; }; // 不会报错cout << a << endl;     // 输出:123f();                     // 输出:124cout << a << endl;     // 输出:123
}

函数本质

使用lambda表达式捕获列表外部变量,如果希望去修改按值捕获的外部变量,那么应该如何处理呢?这就要使用mutable选项,被mutable修改是lambda表达式就算没有参数也要写明参数列表,并且可以去掉按值捕获的外部变量的只读(const)属性。

#include<iostream>
using namespace std;
int main()
{int a = 10;auto f1 = [=] {++a; return a; };    //错误auto f2 = [=]()mutable {++a; return a; };    //正确auto f3 = [&] {++a; return a; };    //正确return 0;
}

通过按值捕获的变量是只读的,按引用捕获的可以修改,而mutable可以去除按值捕获const的特点。

lambda表达式在c++中被视为一个仿函数

http://www.hkea.cn/news/978402/

相关文章:

  • 中国网站制作 第一个佛山网站优化
  • thinkphp做的教育网站微商引流推广
  • 做特卖网站手机版电商最好卖的十大产品
  • 怎样做网站平叿trinseo公司
  • 北京大兴最专业的网站建设公司如何推广一个项目
  • 网页设计最牛的网站建设宁波网站优化公司哪家好
  • 建设通查询如何做网站推广及优化
  • 城乡建设网站首页百度seo收录软件
  • 永久免费建个人网站培训网站建设
  • 如何使用jq做弹幕网站好用的磁力搜索引擎
  • 南充营销型网站建设高端品牌网站建设
  • 制作小程序和网站的公司搜狗收录提交入口网址
  • 手机站电影基础建站如何提升和优化
  • 江苏 网站备案百度贴吧官网app下载
  • 网站制作三站湖南网站seo公司
  • 简单做任务赚钱网站企业管理培训课程报名
  • 零点研究咨询集团官方网站建设相似图片在线查找
  • 网站开发需要什么软件关键词app
  • 360全景网站建设做了5天游戏推广被抓了
  • 政府网站建设经验典型材料河源今日头条新闻最新
  • 为什么要进行网站备案佛山市人民政府门户网站
  • 摄影网站开发背景百度app交易平台
  • 吉林网站建设石家庄百度快照优化排名
  • 大学生网站开发总结报告app推广接单发布平台
  • 自己做的网站怎么推广seo顾问培训
  • 怎么做业务网站百度搜索提交入口
  • 网页设计网站图片西安百度推广运营公司
  • 济南网站开发推广网络服务包括
  • 五星级酒店网站建设关键词歌词表达的意思
  • 浙江高端建设网站网站关键词如何优化