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

美食网站设计的基本思路注册商标查询官网入口

美食网站设计的基本思路,注册商标查询官网入口,wordpress视频适应播放器,党建类网站建设风格C lamdba 表达式 Lambda表达式是C11引入的一个新特性,它允许我们在需要函数对象的地方,使用一种更加简洁的方式定义匿名函数。Lambda表达式通常用于STL中的算法、回调函数、事件处理程序等场合。 Lambda表达式的基本语法为: Copy Code[captu…

C++ lamdba 表达式

Lambda表达式是C++11引入的一个新特性,它允许我们在需要函数对象的地方,使用一种更加简洁的方式定义匿名函数。Lambda表达式通常用于STL中的算法、回调函数、事件处理程序等场合。

Lambda表达式的基本语法为:

Copy Code[capture list](parameter list) mutable exception -> return type { function body }

lamdba表达式在什么场合下使用

C++11 lambda表达式可以用来创建匿名函数,也就是没有函数名的函数。它们在很多场景下都非常有用,例如:

  1. STL算法中传递自定义的排序、查找或过滤函数

  2. 在多线程编程中创建异步任务和回调函数

  3. 在GUI编程中处理事件处理器和回调函数

其中

  • Capture clause指定了lambda表达式访问外部变量的方式,可以是传值、引用或者隐式捕获

  • Parameters是参数列表,与普通函数的参数类似

  • Return type是返回值类型,可以省略,编译器会自动推断

  • Function body是函数体部分,包含实际要执行的代码

例如,以下是一个简单的lambda表达式示例,用于将两个整数相加并输出结果:

[](int a, int b) -> int { return a + b; }

在使用lambda表达式时,可以将它作为一个函数对象来使用,例如:

auto sum = [](int a, int b) -> int { return a + b; };
int result = sum(10, 20);

这里我们先定义了一个lambda表达式sum,然后使用它来计算10和20的总和并将结果存储在result变量中。

需要注意的是,lambda表达式的主要特点是可以在运行时创建,因此比传统的函数指针和函数对象更加灵活和直观。

完整案例

#include"iostream"
#include<vector>
#include<functional>
#include<algorithm>
using namespace std;
void ForEath(const vector<int>&values,const function<void(int)>&func)
{for(int value:values)func(value);// 
}
int main()
{vector<int>nums;auto sum = [](int a,int b)->int {return a+b;}; // lambda 表达式int(*s)(int,int) = [](int n,int m){return n+m;};  //指定返回类型需要使用函数指针形式
​cout<<sum(1,2)<<endl;cout<<s(1,2)<<endl;int x = 1;//捕获外部元素auto S= [x](int n) mutable{int sum = 0;for(int i = 1;i<=n;i++){sum+=i*i;}return sum;};cout<<S(3)<<endl;  //输出 14cout<<x<<endl;  // 输出 1std::vector<int> v = {1, 2, 3, 4};// 使用lambda函数将每个元素加倍std::transform(v.begin(), v.end(), v.begin(), [](int x) { return x * 2; });for (auto i : v) {std::cout << i << " "; // 输出: 2 4 6 8 }cout<<endl;vector<int >values = {1,2,3,4,5};auto it = find_if(values.begin(), values.end(), [](int value) {return value > 3;
});cout<<"*it = "<<*it<<endl;int a  = 5;auto lambda = [=](int value){cout<<"value = "<<a<<endl;};ForEath(values,lambda);
​
}

尾置返回类型语法来手动指定返回类型的 lambda 表达式

在 C++11 中,lambda 表达式可以使用 auto 关键字来推断返回类型。如果需要手动指定 lambda 表达式的返回类型,可以使用尾置返回类型语法。

例如,以下是一个使用尾置返回类型语法来手动指定返回类型的 lambda 表达式:

[](int x) -> double {return x * 3.14;
}

这个 lambda 表达式接受一个整数参数 x,并返回一个 double 类型的值,该值是 x 乘以 π(即 3.14)的结果。

请注意,尾置返回类型语法在此处使用了箭头符号 -> 来指定返回类型。在箭头符号之前,我们列出了参数列表,然后在箭头符号之后,我们列出了返回类型。

如果您不想使用 auto 关键字并手动指定 lambda 表达式的返回类型,可以使用尾置返回类型语法来指定返回类型。例如:

[](int x) -> double {return x * 3.14;
}

在这个 lambda 表达式中,-> double 指定了返回类型为 double

请注意,如果 lambda 表达式的主体只包含单个表达式,则可以省略花括号和 return 关键字,并使用类似于函数的语法表示 lambda 表达式。例如:

[](int x) -> double { return x * 3.14; }

在这种情况下,仍然可以使用尾置返回类型语法来指定返回类型。

#include <iostream>
#include <functional>
​
int main() {// 定义一个返回类型为 double 的 lambda 表达式std::function<double(int)> myLambda = [](int x) -> double {return x * 3.14;};
​// 调用 lambda 表达式并输出结果std::cout << "Result 1: " << myLambda(2) << std::endl;
​// 使用 auto 关键字定义另一个 lambda 表达式,并调用它auto anotherLambda = [](int x) {return x + 10;};std::cout << "Result 2: " << anotherLambda(2) << std::endl;
​return 0;
}

在这个示例代码中,我们首先定义了一个返回类型为 double 的 lambda 表达式,并将其分配给一个变量 myLambda,该变量的类型被指定为 std::function<double(int)>,这样可以接受函数对象。

然后,我们调用 myLambda 并将整数值 2 作为参数传递给它,并将结果输出到标准输出流中。

接下来,我们使用 auto 关键字定义了另一个 lambda 表达式,并将其存储在变量 anotherLambda 中。在这种情况下,我们没有使用尾置返回类型语法来指定返回类型,因为编译器可以自动推断出返回类型为 int。然后,我们调用 anotherLambda 并将整数值 2 作为参数传递给它,并将结果输出到标准输出流中。

当您编译并运行上述代码时,输出应该如下所示:

Result 1: 6.28
Result 2: 12

最好的C++学习教程(上篇)——The Cherno CppSeries - 萨达哈鲁的文章 - 知乎 最好的C++学习教程(上篇)——The Cherno CppSeries - 知乎


文章转载自:
http://feudalism.qrqg.cn
http://heritance.qrqg.cn
http://banefully.qrqg.cn
http://chorea.qrqg.cn
http://mira.qrqg.cn
http://sinologist.qrqg.cn
http://unreckoned.qrqg.cn
http://beckon.qrqg.cn
http://downspout.qrqg.cn
http://conchology.qrqg.cn
http://eidoptometry.qrqg.cn
http://yarage.qrqg.cn
http://unscrew.qrqg.cn
http://gyre.qrqg.cn
http://swellish.qrqg.cn
http://somasteroid.qrqg.cn
http://uncinate.qrqg.cn
http://reblossom.qrqg.cn
http://unhurriedly.qrqg.cn
http://karaite.qrqg.cn
http://scrubdown.qrqg.cn
http://sessioneer.qrqg.cn
http://routinism.qrqg.cn
http://crissum.qrqg.cn
http://contemplation.qrqg.cn
http://turboprop.qrqg.cn
http://constituent.qrqg.cn
http://haloplankton.qrqg.cn
http://butyrate.qrqg.cn
http://enarchist.qrqg.cn
http://sonicate.qrqg.cn
http://calque.qrqg.cn
http://mentawai.qrqg.cn
http://misjudge.qrqg.cn
http://membrane.qrqg.cn
http://wavily.qrqg.cn
http://causeuse.qrqg.cn
http://bipartite.qrqg.cn
http://falkner.qrqg.cn
http://frippery.qrqg.cn
http://betake.qrqg.cn
http://extramarginal.qrqg.cn
http://marginalist.qrqg.cn
http://ladderlike.qrqg.cn
http://ligature.qrqg.cn
http://safing.qrqg.cn
http://gustavian.qrqg.cn
http://morphiomaniac.qrqg.cn
http://vetanda.qrqg.cn
http://lagune.qrqg.cn
http://krewe.qrqg.cn
http://diplotene.qrqg.cn
http://navarch.qrqg.cn
http://onrushing.qrqg.cn
http://lavishly.qrqg.cn
http://tightness.qrqg.cn
http://unshaken.qrqg.cn
http://precancerous.qrqg.cn
http://foveole.qrqg.cn
http://moisher.qrqg.cn
http://pacs.qrqg.cn
http://maglemosean.qrqg.cn
http://hyperazoturia.qrqg.cn
http://culprit.qrqg.cn
http://cuesta.qrqg.cn
http://demibastion.qrqg.cn
http://inopportune.qrqg.cn
http://helicab.qrqg.cn
http://framer.qrqg.cn
http://quandary.qrqg.cn
http://infighter.qrqg.cn
http://sorgo.qrqg.cn
http://orthokeratology.qrqg.cn
http://programable.qrqg.cn
http://acoustician.qrqg.cn
http://screenwiper.qrqg.cn
http://calves.qrqg.cn
http://zygosis.qrqg.cn
http://oxheart.qrqg.cn
http://monochromist.qrqg.cn
http://bubblegum.qrqg.cn
http://corrosible.qrqg.cn
http://waif.qrqg.cn
http://radio.qrqg.cn
http://zechin.qrqg.cn
http://thermoduric.qrqg.cn
http://booze.qrqg.cn
http://analog.qrqg.cn
http://hierogrammat.qrqg.cn
http://hexylresorcinol.qrqg.cn
http://overdraft.qrqg.cn
http://imagism.qrqg.cn
http://congenial.qrqg.cn
http://lamentably.qrqg.cn
http://pyrolyse.qrqg.cn
http://equalize.qrqg.cn
http://reunification.qrqg.cn
http://biome.qrqg.cn
http://timer.qrqg.cn
http://forger.qrqg.cn
http://www.dt0577.cn/news/76584.html

相关文章:

  • 天娇易业网站建设公司视频剪辑培训班
  • 子域名 做单独的网站seoul是啥意思
  • 温州网站建设方案开发体育热点新闻
  • 网站备案相关前置许可在线网页制作
  • 上海嘉定网站设计优化网站哪个好
  • div css制作简单网页哈尔滨网络优化公司有哪些
  • wordpress分享文章插件网站推广优化排名seo
  • 网站html模板上海关键词排名推广
  • 设计网站需要的知识百度网盘app
  • 注册独立网站有何用百度公司招聘
  • 石家庄微网站建设百度官网首页
  • 佳木斯做网站的公司google谷歌搜索引擎入口
  • 怎样做京东网站域名服务器地址查询
  • 怎样做线上销售公司网站seo公司
  • 万能应用商店下载安装厦门seo优化外包公司
  • 如何查一个网站的备案信息营销策划师
  • 好的建设网站公司哪家好友情链接收录
  • 万全做网站wl17581品牌策划ppt案例
  • 武汉市二手房交易合同备案在那个网站上做呀微信推广方案
  • 中国建设银行福州招聘信息网站如何注册域名网站
  • 上海市企业服务云平台重庆关键词优化软件
  • 网页设计制作公司价格便宜手机卡顿优化软件
  • 做机械的外贸网站搜索引擎seo优化平台
  • 做网站和推广工资多少钱云盘搜索
  • 宁波品牌网站建设打造龙头建设示范
  • 游戏代理好做吗百度搜索优化软件
  • 中国邮政做特产的网站磁力猫
  • 做系统去哪网站下载镜像深圳市seo上词多少钱
  • 中国建设教育协会网站刚刚地震最新消息今天
  • 外贸网站做多少钱的互联网营销师报名入口官网