猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
第一次见这个函数名的写法auto fn = [],知道函数干什么的吗?
auto fn = [](int *a) { for (int i = 0; i < 10; i++) cout << *a << endl; };
慕运维8079593
浏览 64
回答 2
2回答
九州编程
public class Day1{ public static void main(String[] args){ int a = 1; a++; System.out.println(a);} }方法要放在类里面,方法的实现要放在方法里面
0
0
0
宝慕林4294392
就是创建临时函数以方便重复调用,这个一般在局部函数中使用,不暴露在外部的。auto是C/C++的东西,在C++11标准的语法中,auto被定义为自动推断变量的类型。[](){}; 是在定义一个函数,记得怎么定义函数指针的么 typedef void (*FUNP)(int a); 类似的吧。[]中括号里可以用&修饰,具体什么作用可以查查资料,我也不太清楚,在大部分情况下&符号不加也没关系,但有时编译器无法隐式捕获;()小括号中是形参列表;{}括号中是函数体,因为是定义函数,大括号后面记得加 ; 分号。例子:void test(){auto fn = [&](int i){printf("%d\n",i);i++;return i;};int var = 0;while(var < 10000){var = fn(var);}}还有,利用此方法可以很方便的开辟线程例子:之前用Qt写的测试代码,就没重新写例子#include "thread"#include <qmutex.h>#include <QDebug>#include <QTime>long long tt = 0;QMutex mtx;int main(int argc, char *argv[]){std::thread *thd_test = new std::thread([&](){bool quit = false;while(!quit){mtx.lock();tt++;if(tt== LLONG_MAX)quit = true;if(tt == 5000)thd_test->detach();mtx.unlock();std::this_thread::sleep_for(std::chrono::milliseconds(2));}});std::thread *thd_run = new std::thread([&](){bool exit = false;while(!exit){mtx.lock();qDebug() << "thd_run" << tt;if(tt == 10000)exit = true;mtx.unlock();std::this_thread::sleep_for(std::chrono::milliseconds(1));}});thd_run->join();qDebug() << "***********************************************";std::this_thread::sleep_for(std::chrono::seconds(5));qDebug() << "***********************************************";std::thread *thd_after = new std::thread([&](){bool exit = false;while(!exit){mtx.lock();qDebug() << "thd_after" <<tt;if(tt == 20000)exit = true;mtx.unlock();std::this_thread::sleep_for(std::chrono::milliseconds(1));}});thd_after->join();return 0;}
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
PHP
php如何把参数放在Http Request Heade????
1 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续