C++lambda表達式(vs2010)

從vs2010開始C++已經開始支持lambda表達式:

eg:
  vector<int> v;
 for( int i = 0; i < 10; ++i)
 {
    v.push_back(i);
 }
 foreach(v.begin(), v.end(); [](int n){cout<<n<<endl;}
 1、[]是lambda的前導符,它通知編譯器其後引導的是一個lambda表達式。lambda表達式的工作就是定義匿名函數類並構造其對象,而後調用其括號算符重載函數;
 2、[&] 和 [=]分別表示引用所有可以引用的變量和使用所有可以使用的值;
 3、當lambda想返回值的時候需要使用 return-type的形式, auto fun = [&](int n)->{return n;};
 eg:
  int n = 0;
  auto fun = [=]()multable{ n= 1; };
  fun(); // 調用執行後 n == 0
  multable 類似於函數的參數傳值,此關鍵字主要用於標識lambda表達式採用的是至傳遞的方式,在表達式語句塊內對變量進行修改不會影響語句塊外部的變量值;
  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章