关闭

lambda function的用法

262人阅读 评论(0) 收藏 举报
分类:

建立一个闭包(closure):一个匿名函数对象,能够捕获局域内变量。
语法:
[capture-list] ( params ) mutable(optional) exception attribute -> ret{body} //完整定义
解释:

1、(params):参数,相当于function的参数,例:

auto y = [](int i){ return i; };
cout<<"y's value is:"<<y(2);  //结果:y's value is:2

2、Lambda Capture: //不懂!!!
The capture-list is a comma-separated list of 0 or more captures, optionally beginning with the capture-default.
The only capture default are & and =.


lambda用途例:

    list<int> m_list;
    for(int i = 0; i < 5; i++)
        m_list.push_back(i+1);
    m_list.remove_if([](int x)->bool{return x%2 == 1;});
    auto show = [](list<int> li){
        for(auto i : li)
            cout<<i<<"  ";
        cout<<endl;
    };
    show(m_list);  //结果:2  4
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:8057次
    • 积分:450
    • 等级:
    • 排名:千里之外
    • 原创:34篇
    • 转载:3篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论