C++ Lambda 表示式

爱新觉罗LQ發表於2024-11-29

C++ Lambda 表示式

快速入門

//  lambda 函式
//  本質上:就是匿名函式
auto lam = [] {cout << "hello world";};

lam();  //  使用 lambda 函式

auto add = [](int a, int b)->int {
    return a + b;
};

int res = add(3, 8);
cout << res << endl;

int data[10] = {1,4,4,6,7,3,1,4,9,8};
sort(data, data + 10);  //  預設升序
for (auto i : data){
    cout << i << " " << endl;
}
    

sort(data, data + 10, [](int a, int b) {return a > b;});
for (auto i : data){
    cout << i << " " << endl;
}

語法詳解

[捕捉列表] (引數列表)-> 返回值型別 {函式體}

捕捉列表

用來捕捉這個 lambda 表示式所在作用域中的相關變數

[=] 值傳遞

[變數1,變數2] 捕捉指定變數

[&] 以引用額方式,捕捉作用域內的所有變數

[] 不捕捉

相關文章