zoukankan      html  css  js  c++  java
  • lambda的使用

    void biggies( vector<string>::size_type sz)
    {
    	vector<string> words{ "saw","sbe","scr","sb" };
    	sort(words.begin(), words.end());
    	auto endl_flag = unique(words.begin(), words.end());
    	words.erase(endl_flag, words.end());
    	
    	stable_sort(words.begin(), words.end(), [](const string& a, const string& b) {return a.size() < b.size();});
    	auto wc = find_if(words.begin(), words.end(), [sz](const string& a) {return a.size() > sz;});
    	auto count = words.end() - wc;
    	
    	for_each(wc, words.end(), [](const string &s) {cout << s << '	';});
    	cout << endl;
    }
    

      

    void x10t21()
    {
    	int num = 5;
    	auto f = [&num]()->bool {if (num > 0) { num--;return false; } else return true;};
    	while (!f());
    	cout << num << endl;;
    }
    

      当定义一个lambda时,编译器生成一个与lambda对应的新的(未命名)类类型。当一个函数传递一个lambda时,同时定义了一个新类型和该类型的一个对象,传递的参数就是此编译器生成的类类型的未命名对象,当使用auto定义一个用lambda初始化的变量时,定义了一个从lambda生成的类型的对象。默认情况下,从lambda生成的类都包含一个对应该lambda所捕获的变量的数据成员。类似任何普通类的数据成员,lambda的数据成员也在lambda对象创建时被初始化。

  • 相关阅读:
    Coursera Algorithm II PA2 Q2
    Coursera Algorithm Part II PA2
    实现 memcpy 函数
    超人
    Proxy 模式
    【6】锋利的 jQuery 笔记
    【3】Chrome 的一些常用操作
    HTML 待解决与已解决问题
    CSS 待解决问题
    JS 一些常用技巧
  • 原文地址:https://www.cnblogs.com/linear/p/7019720.html
Copyright © 2011-2022 走看看