函数指针和lambda
无参数的函数HelloWorld(),可以直接像这样调用
像这样可以获取这个函数的指针

它等同于

在有参数的情况下,也是一样的

现在假设我们要打印一个vector<int>中的所有数字,我们可以这样做
也可以将PrintValue函数作为参数,传递给ForEach函数
而lambda表达式让我们可以不像这样声明PrintValue函数,而是把我们想要做的事情,当作一个一次性的功能一样,直接写在代码中
所以,什么样的情景下会用到lambda表达式,比如这里的values,我想对里面的每个数字做一些操作时,我通过ForEach,把values传进去,但暂时又没想好要做什么操作,可能只想简单的打印出来,就像这里的例子一样,也可能想做点别的操作,但如果每次想做操作的时候,都去声明一个函数,去定义它,再到ForEach函数里修改对应的函数,这会相当麻烦,所以lambda在这样的情景下就显得特别直观。