C++ Lambda Expressions: Alat berkuasa untuk senario tertentu
Pengenalan
Ekspresi Lambda ialah fungsi tanpa nama yang diperkenalkan dalam C++ yang membolehkan anda mencipta fungsi sebaris pendek. Mereka hebat untuk mengendalikan tugas mudah yang tidak memerlukan pengisytiharan atau penamaan berasingan.
Sintaks Lambda
Ekspresi Lambda menggunakan sintaks berikut:
[capture-list](parameters) -> return-type { body }
Penggunaan
Ekspresi Lambda amat berguna dalam senario berikut:
std::sort
和 std::find
. Praktikal Case
1. ungkapan Cari nombor pertama yang lebih besar daripada 5:
#include <iostream> #include <string> using namespace std; int main() { string str = "hello"; transform(str.begin(), str.end(), str.begin(), [](char c) { return toupper(c); }); cout << str << endl; // 输出:HELLO return 0; }
3 Sebagai penutupan
Kod berikut menunjukkan cara membuat penutupan menggunakan ungkapan lambda:
#include <iostream> #include <vector> using namespace std; int main() { vector<int> nums = {1, 3, 5, 7, 9}; auto it = find_if(nums.begin(), nums.end(), [](int n) { return n > 5; }); if (it != nums.end()) { cout << "找到了第一个大于 5 的数字:" << *it << endl; // 输出:7 } else { cout << "没有找到大于 5 的数字" << endl; } return 0; }
Nota:
Berbanding dengan fungsi Lambda, terdapat had berikut:Mereka tidak mempunyai ruang nama bebas.
Mereka tidak boleh dimuat semula.
Mereka tidak boleh mempunyai parameter lalai.
Apabila menggunakan ungkapan lambda, timbangkan kelebihan dan hadnya dengan teliti untuk menentukan sama ada ia adalah pilihan terbaik untuk senario khusus anda.Atas ialah kandungan terperinci Dalam senario apakah ungkapan lambda C++ sangat berguna?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!