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数组

以上

posted @ 2026-08-15 16:14  黄昏逃避行  阅读(4)  评论(0)    收藏  举报