首頁 >後端開發 >C++ >C++ lambda 表達式如何定義與使用?

C++ lambda 表達式如何定義與使用?

WBOY
WBOY原創
2024-04-17 09:51:01615瀏覽

C Lambda 表達式是匿名函數,用於內聯定義函數,使用語法:[capture list](parameters) -> return_type {函數體}。它們可以捕獲外部範圍內的變量,傳遞參數,並指定返回類型。 Lambda 表達式用於需要傳遞函數作為參數或在某些上下文中定義函數的情況,例如:傳遞參數、捕獲變數和排序清單。

C++ lambda 表达式如何定义和使用?

C Lambda 表達式:定義與用法

簡介
Lambda 表達式是C語言中一種特殊的匿名函數,它允許你以簡潔的方式定義內聯函數。它們廣泛用於需要傳遞函數作為參數或在某些上下文中定義函數的情況。

語法
Lambda 表達式語法如下:

[capture list](parameters) -> return_type {
  // 函数体
}

擷取清單##擷取清單用於擷取lambda 表達式外部範圍內的變數。變數可以按值捕獲或按引用捕獲。

參數參數清單允許你傳遞給 lambda 表達式的參數。

傳回類型如果 lambda 運算式傳回一個值,則需要指定回傳類型。否則,返回類型應為
void

函數體與普通函數類似,函數體包含要用作 lambda 表達式的程式碼。

用法以下是一些lambda 表達式的使用範例:

基本範例

[]() { std::cout << "Hello, world!" << std::endl; }();

傳遞參數

int add(int a, int b) { return a + b; }

[] (int a, int b) { return a + b;  }(5, 6); // 调用 lambda 表达式

捕獲變數

int x = 10;
[x] () { std::cout << "Value of x: " << x << std::endl; }();

實戰案例考慮一個需要對清單中的數字進行排序的範例:

std::vector<int> numbers = {2, 5, 1, 3, 4};

std::sort(numbers.begin(), numbers.end(),
    [](int a, int b) { return a < b; });

for (auto num : numbers) {
    std::cout << num << " ";
}

輸出:

1 2 3 4 5

結論#Lambda 表達式是C 中定義內聯函數的強大工具。它們簡化了程式碼,提高了可讀性並減少了對樣板程式碼的需求。透過理解它們的語法、用法和實戰案例,你可以有效地使用 lambda 表達式來解決各種程式設計問題。

以上是C++ lambda 表達式如何定義與使用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn