|
学习c++(lambda函数,匿名函数[](){}
- #include <iostream>
- //学习c++(lambda函数,匿名函数[](){}
- //lambda函数效率非常高 一般与算法结合
- template<typename Func>
- void print_use_func(Func func, int a, int b, int c){
- func(a,b,c);
- }
- template<typename Func>
- void print_use_func2(Func func){
- func();
- }
- int main(){
- print_use_func([](int a, int b, int c){
- //lambda函数 的 函数体 ()里面是形式参数 []是什么?携带local变量
- std::cout << "a=" << a <<",b=" << b << ",c=" << c << std::endl;
- }, 1, 2, 3);
- int aa=11,bb=22,cc=33,dd=44;
- print_use_func2([&aa,&bb,&cc](){
- //[]是什么?携带local变量
- //[aa,bb,cc] 设定携带的局部变量 值拷贝
- //[=] 携带所有的局部变量 看用到了哪个 值拷贝
- //[&aa,&bb,&cc] 设定携带的局部变量 引用方式 ----------这种效率最高
- //[&] 携带所有的局部变量 看用到了哪个 引用方式
- std::cout << "aa=" << aa <<",bb=" << bb << ",cc=" << cc << std::endl;
- });
-
- return 0;
- }
复制代码
|
|