掃描二維碼
隨時隨地手機看文章
語法糖
是一種讓程序員使用更加便利的一種語法,并不會帶來額外的功能,比如Lambda
,沒有這種語法糖,其可以用已有的語法等價的實現出相應的功能。Lamdba
產生的意義,而缺乏編程經驗的同學,跟著我一起來梳理下Lamdba
給我們帶來了哪些便利性?Lambda
最多的場景是回調函數,先說說回調函數。在編程中回調函數
是一個常見的設計方式, 下圖是一個常見的同步調用的回調函數:調用方
訪問被調用方
的實現函數InvokeFunction
被調用方
訪問調用方
的回調函數CallbackFunction
被調用方
使用調用方
指定的方法去實現內部的一個邏輯。常見的比如:被調用模塊
使用調用模塊
指定的方法完成其功能,比如常見的std::sort
被調用方
通過回調函數去通知調用模塊
,去進行相應操作。回調函數
和函數對象
(仿函數
)。回調函數最常見的C和C 中都使用的函數指針
,我們以std::sort
為例。一個vector
容器中存儲了若干的Student
信息,想要將這些學生信息根據年齡進行升序排序,于是可以調用std::sort
,并且使用自定義的函數StudentSortFunction
給sort
作為回調函數來完成排序。#include?
#include?
#include?
struct?Student
{?
??std::string??m_strName;??
??unsigned?int?m_uAge;
};
void?PrintStudentVector(const?std::vector