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)
在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)
相关文章推荐
- C++11新特性之 rvalue Reference(右值引用)
- C++11新特性之 rvalue Reference(右值引用)
- c++全局变量在大型程序中不应出现太多
- C++primer_顺序容器之string操作
- C++ primer plus Sales_item.h源码
- 关于c++顺序容器小结(二)---基本操作
- 3.c/c++程序员面试宝典-变量
- DOxygen for C++使用说明——注释代码二
- C++ 在继承中虚函数、纯虚函数、普通函数,三者的区别
- c++用gsoap调用webservice备忘
- Visual Studio 2010中C++项目升级指南
- vc++从txt文件中读取数据
- c++中虚函数和纯虚函数定义
- c语言中的各种printf
- DOxygen for C++使用说明——Markdown支持
- 【黑马程序员】 我的C语言学习笔记(1)数据类型
- 排序算法之冒泡排序
- C++设计模式[八]装饰模式
- C++学习——父类指针和子类指针的步长问题
- C++学习路线