您的位置:首页 > 编程语言 > C语言/C++

C++ Lamdba表达式

2015-11-09 22:15 435 查看
在C++11中,lambda表达式是一种方便的定义匿名函数对象的方法。它可以在其被调用或者作为参数传递给另一个函数的地方对函数进行定义。

在ISO C++标准钟,有如下这个简单的例子,它将一个lambda表达式作为第三个参数传递给std::sort()函数:

#include <algorithm>
#include <cmath>

void abssort(float* x, unsigned n) {
std::sort(x, x + n,
// Lambda expression begins
[](float a, float b) {
return (std::abs(a) < std::abs(b));
} // end of lambda expression
);
}

下图展示了lambda表达式的组成部分



1.capture clause (Also
known as the lambda-introducer in
the C++ specification.)

2.parameter
list Optional. (Also known as the lambda
declarator)

3.mutable
specification Optional.

4.exception-specification Optional.

5.trailing-return-type Optional.

6.lambda
body

capture clause (Also known as the lambda-introducer in the C++ specification.)

parameter list Optional. (Also known as the lambda declarator)

mutable specification Optional.

exception-specification Optional.

trailing-return-type Optional.

lambda body)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: