Rumah >pembangunan bahagian belakang >C++ >Penunjuk fungsi C++ dan ungkapan lambda: Mendedahkan keajaiban panggilan balik
Kedua-dua penunjuk fungsi dan ungkapan lambda membenarkan fungsi dihantar sebagai argumen kepada fungsi panggil balik. Penunjuk fungsi memegang pembolehubah yang menunjuk ke alamat fungsi, manakala ungkapan lambda ialah objek fungsi tanpa nama yang mentakrifkan fungsi dengan cepat. Melalui contoh praktikal, kami menunjukkan penggunaan penunjuk fungsi dan ungkapan lambda untuk menjumlahkan elemen tatasusunan. Teknik ini penting untuk menulis kod C++ yang fleksibel dan berskala.
Penunjuk Fungsi C++ dan Ungkapan Lambda: Mendedahkan Sihir Panggilan Balik
Pengenalan
Penunjuk fungsi dan ungkapan lambda memainkan peranan penting dalam C++, ia membenarkan fungsi menghantar balik. Dalam artikel ini, kami akan melihat secara mendalam pada penunjuk fungsi dan ungkapan lambda dan menunjukkan penggunaan praktikalnya melalui contoh praktikal.
Penunjuk fungsi
Penunjuk fungsi ialah pembolehubah yang memegang alamat fungsi. Mereka membenarkan fungsi diluluskan sebagai nilai, sama seperti pembolehubah lain. Untuk mengisytiharkan penuding fungsi, ikut format:
// 指向具有指定签名的函数的指针 typedef int (*fptr)(int);
ekspresi lambda
ekspresi lambda ialah objek fungsi tanpa nama yang membolehkan untuk mentakrifkan fungsi dengan pantas di mana sahaja fungsi diperlukan. Sintaksnya adalah seperti berikut:
[capture-list](parameter-list) -> return-type { body };
Kes praktikal
Berikut ialah kes praktikal yang menunjukkan cara menggunakan penunjuk fungsi dan ungkapan lambda untuk menjumlahkan elemen dalam tatasusunan:
Coretan kod 1: Menggunakan penunjuk fungsi
Coretan kod 2: Menggunakan ungkapan lambda
#include <iostream> // 求和函数 int sum(int a, int b) { return a + b; } // 使用函数指针 using namespace std; int main() { int arr[] = {1, 2, 3, 4, 5}; int size = sizeof(arr) / sizeof(arr[0]); // 指向求和函数的函数指针 int (*ptr)(int, int) = ∑ int total = 0; for (int i = 0; i < size; i++) { total += ptr(arr[i], arr[i + 1]); } cout << "Total: " << total << endl; return 0; }
Memahami kodDalam coretan kod 1, kami menggunakan penuding fungsi
. ptr
来保存指向求和函数 sum
的地址。我们遍历数组,将每个元素及其后续元素传递给 ptr
。求和函数返回两个元素的总和,将其添加到 total
KesimpulanPenunjuk fungsi dan ungkapan lambda adalah penting untuk menghantar fungsi kepada fungsi panggil balik. Penunjuk fungsi menyediakan mekanisme untuk menghantar fungsi melalui pembolehubah mudah, manakala ungkapan lambda membenarkan fungsi tanpa nama ditakrifkan secara dinamik. Dengan memahami teknik ini, anda boleh menulis kod C++ yang fleksibel dan berskala.
Atas ialah kandungan terperinci Penunjuk fungsi C++ dan ungkapan lambda: Mendedahkan keajaiban panggilan balik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!