在C++中,可以使用lambda表達式來創建匿名函數。lambda表達式可以在需要函數對象的地方使用,例如作為函數參數、賦值給變量或者直接調用。
lambda表達式的基本語法如下:
捕捉列表 -> 返回類型 { 函數體 }
其中,捕捉列表用于捕獲局部變量,參數列表用于定義函數參數,返回類型用于定義函數返回值類型,函數體用于定義函數邏輯。
下面是一個使用lambda表達式的例子:
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5};
// 使用匿名函數作為sort函數的比較函數
std::sort(numbers.begin(), numbers.end(), [](int a, int b) {
return a > b;
});
// 使用匿名函數打印排序后的結果
std::for_each(numbers.begin(), numbers.end(), [](int num) {
std::cout << num << " ";
});
return 0;
}
在上述代碼中,我們使用lambda表達式作為std::sort()
函數的比較函數,按降序對numbers
進行排序。然后使用lambda表達式作為std::for_each()
函數的操作函數,打印排序后的結果。