前两天在群里跟人讨论到写库时对于lambda和function的取舍,跑了写测试查了些资料后基本得出结论:
如果没有自由变量的情况下,一般不要用function。
如果有自由变量的话,C++中的lambda就是一个匿名类的实例,而如果没有的话,就是一个单纯的函数指针。为什么说尽量不要用function呢?我们来看一下下面的代码:
void lambdatest(vector<int> data) { sort(data.begin(), data.end(), [](int a, int b){ return a > b; }); sort(data.begin(), data.end(), [](int a, int b){ return a < b; }); } void function