作者layu19920414 (Guan-Jie Huang)
看板C_and_CPP
标题[问题] (已解决)特殊的变数/函式宣告方式的意义
时间Sat Nov 11 03:22:31 2017
可能有点标题内文不符,
是说昨天在leetcode上面看到一段code,
他函式/变数的宣告方式有点复杂,
具体code如下:
static int SPEED_UP = [](){
ios_base::sync_with_stdio(false);
cin.tie(0);
return 0;
}();
完整的code则在此
https://goo.gl/LY6wAQ 。
大概可以理解这是不执行cin清buffer的动作,
可是那个 [](){ … }() 是第一次看到这写法,
也不知道如何具体描述并且查询,
也不太像跟命令式/表达句相关的东西,
还请各位熟门路的老司机带个路惹QAQ
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 140.112.25.103
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1510341754.A.5F0.html
1F:→ bibo9901: c++11的lambda11/11 03:24
2F:→ layu19920414: 太神惹 感谢一楼XD11/11 03:32
※ 编辑: layu19920414 (49.219.130.101), 11/11/2017 03:33:35
3F:推 james732: 这个写法可以让这个function在main之前执行吗? 11/11 20:37
4F:→ kingofsdtw: 有神快拜!! 11/11 21:53
5F:推 LPH66: @james 它是 static global 啊 11/11 23:05
6F:→ LPH66: [](){...} 是个 lambda, 在它後面贴个 () 呼叫它 11/11 23:05
7F:→ james732: 不使用lambda有办法达到一样的效果吗? 11/12 00:24
8F:→ james732: 刚刚在想用lambda有什麽好处,就看到後面的() 11/12 00:25
9F:推 loveflames: functor啊 11/12 00:37
10F:推 CoNsTaR: 用 lambda 有闭包,不知道算不算好处啦 11/12 02:28
11F:推 Ommm5566: 跟std的algorithm搭配神方便 又可以限制scope 11/12 09:43
12F:→ Ommm5566: 好用度算是仅次於type deduction吧 11/12 09:44
13F:推 loveflames: functor得将class设计成满足STL需求,lambda不用考虑 11/12 09:59
14F:→ loveflames: 这些 11/12 09:59
15F:→ loveflames: 话说动态初始化是否在main之前是implementation-defin 11/12 10:59
16F:→ loveflames: ed 11/12 10:59
17F:→ james732: 咦所以这个function什麽时候被呼叫是看实作的? 11/12 13:26
19F:→ loveflames: zation 11/12 15:44
20F:→ loveflames: 里面的deferred dynamic initialization 11/12 15:46