C++ lambda初探 | Blurred code

C++ lambda初探

panda

2018/01/24

Updated:2018/01/24

Categories: cpp

lambda表达式主要用于一次性的函数,最常见的应用就是在remove_if,find_if这种需要predicator的函数中了。

其结构为

[函数对象参数] (函数参数) mutable或exception声明 -> 返回值类型 {函数体}

其中[]标志Lambda的开始,[]中可以增加一些参数。

可以用->标明函数返回值变量,用法同C11标准相同,简单函数可以省略,lambda可以自动推断。 伪代码

std::list<int> lst = {1,2,3,4,5,6};
int value = 4;
lst.remove_if([&value](const int& elem){return elem==value;});
lst.remove_if([](const int& elem){return elem>=5;});
for(auto i: lst)
 std::cout<<i<<std::endl;

output

1
2
3