溫馨提示×

c++中l(wèi)ambda表達(dá)式怎么應(yīng)用

c++
小億
76
2023-11-07 10:46:19
欄目: 編程語言

在C++中,lambda表達(dá)式是一種用于創(chuàng)建匿名函數(shù)的特殊語法。它允許我們在需要函數(shù)對象的地方內(nèi)聯(lián)定義一個(gè)函數(shù),而無需顯式命名函數(shù)。

下面是一些常見的lambda表達(dá)式的應(yīng)用示例:

1. 作為函數(shù)參數(shù):

#include 
// lambda作為函數(shù)參數(shù)
void performOperation(int a, int b, std::function operation) {
    int result = operation(a, b);
    std::cout << "結(jié)果為:" << result << std::endl;
}
int main() {
    int x = 10;
    int y = 5;
    // 使用lambda作為函數(shù)參數(shù)
    performOperation(x, y, [](int a, int b) {
        return a + b;
    });
    return 0;
}

2. 在算法中使用:

#include 
#include 
#include 
int main() {
    std::vector numbers = {5, 3, 8, 2, 1, 9};
    // 使用lambda表達(dá)式進(jìn)行排序
    std::sort(numbers.begin(), numbers.end(), [](int a, int b) {
        return a < b;
    });
    // 打印排序后的結(jié)果
    for (int num : numbers) {
        std::cout << num << " ";
    }
    return 0;
}

3. 捕獲外部變量:

#include 
int main() {
    int x = 5;
    int y = 10;
    // 使用lambda表達(dá)式捕獲外部變量
    auto sum = [x, y]() {
        return x + y;
    };
    std::cout << "和為:" << sum() << std::endl;
    return 0;
}

這些示例展示了lambda表達(dá)式在C++中的幾種常見應(yīng)用方式。你可以根據(jù)具體的需求,在合適的地方使用lambda表達(dá)式來簡潔地定義匿名函數(shù)。

0