c++ 中的lambda函数
第一次在别人的代码里看到还有这样的东西,
了解了一下发现挺好用的
//传入参数
kill_people(i);
//函数运行
auto kill_person = [&](int id) {
alive[id] = 0;
};
这个函数和重新写一个void kill_people(int id)没有本质上的区别:
1.auto就算函数类型,因为lambda函数难以分辨操作类型,
所以用auto让计算机自己判断;
2.[&] (int id): [&]是捕获标志,(int id)是传入参数;
那么Lambda函数和常见类型的函数有什么区别呢?
1.Lambda函数可以直接写在主函数里,阅读和封装更为清晰;而且不用担心他污染变量名;
2.Lambda函数用了[&],可以调用别的函数而不用再写到传参列表当中
像这里就直接调用了alive数组
以上
浙公网安备 33010602011771号