东方耀AI技术分享

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 2478|回复: 0
打印 上一主题 下一主题

[C/C++] 学习c++(lambda函数,匿名函数[](){}

[复制链接]

1365

主题

1856

帖子

1万

积分

管理员

Rank: 10Rank: 10Rank: 10

积分
14450
QQ
跳转到指定楼层
楼主
发表于 2021-8-6 16:36:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式





学习c++(lambda函数,匿名函数[](){}




  1. #include <iostream>


  2. //学习c++(lambda函数,匿名函数[](){}
  3. //lambda函数效率非常高 一般与算法结合


  4. template<typename Func>
  5. void print_use_func(Func func, int a, int b, int c){
  6.     func(a,b,c);
  7. }


  8. template<typename Func>
  9. void print_use_func2(Func func){
  10.     func();
  11. }

  12. int main(){

  13.     print_use_func([](int a, int b, int c){
  14.         //lambda函数 的 函数体  ()里面是形式参数  []是什么?携带local变量
  15.         std::cout << "a=" << a <<",b=" << b << ",c=" << c << std::endl;
  16.     }, 1, 2, 3);

  17.     int aa=11,bb=22,cc=33,dd=44;

  18.     print_use_func2([&aa,&bb,&cc](){
  19.         //[]是什么?携带local变量
  20.         //[aa,bb,cc]   设定携带的局部变量  值拷贝
  21.         //[=]          携带所有的局部变量  看用到了哪个 值拷贝
  22.         //[&aa,&bb,&cc]  设定携带的局部变量  引用方式        ----------这种效率最高
  23.         //[&]           携带所有的局部变量  看用到了哪个 引用方式
  24.         std::cout << "aa=" << aa <<",bb=" << bb << ",cc=" << cc << std::endl;
  25.     });

  26.    
  27.     return 0;
  28. }
复制代码


让天下人人学会人工智能!人工智能的前景一片大好!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|人工智能工程师的摇篮 ( 湘ICP备2020019608号-1 )

GMT+8, 2024-6-16 11:15 , Processed in 0.179720 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表