Rumah >pembangunan bahagian belakang >C++ >Senario aplikasi penunjuk fungsi C++
Penunjuk fungsi dalam C++ merujuk kepada pembolehubah yang menunjuk ke alamat memori fungsi. Ia biasanya digunakan dalam senario seperti fungsi panggil balik, pengikatan dinamik dan pemprosesan acara. Sebagai contoh, dalam algoritma pengisihan, kita boleh menggunakan penunjuk fungsi untuk melaksanakan fungsi perbandingan yang berbeza untuk memilih algoritma pengisihan secara fleksibel.
Senario aplikasi penunjuk fungsi C++
Apakah penunjuk fungsi?
Dalam C++, penunjuk fungsi ialah penunjuk kepada fungsi. Ia adalah pembolehubah yang menunjuk ke alamat memori fungsi.
Pengisytiharan penunjuk fungsi
Pengisytiharan penunjuk fungsi adalah sangat serupa dengan pengisytiharan fungsi biasa, kecuali asterisk (*) ditambah di hadapan nama fungsi:
typedef int (*FuncPtr)(int, int);
Pengisytiharan di atas mentakrifkan fungsi bernama FuncPtr
Penunjuk fungsi yang menunjuk ke fungsi yang menerima dua parameter jenis int
dan mengembalikan jenis int
. FuncPtr
的函数指针,它指向一个接受两个 int
类型的参数并返回一个 int
类型的函数。
函数指针的用法
函数指针可以用于以下场景:
实战案例:排序算法
我们可以使用函数指针来实现不同的排序算法。下面是一个使用函数指针的比较函数的 sort
函数:
#include <algorithm> bool Ascending(int a, int b) { return a < b; } bool Descending(int a, int b) { return a > b; } void Sort(int* arr, int size, bool (*CompareFunc)(int, int)) { std::sort(arr, arr + size, CompareFunc); } int main() { int arr[] = {5, 3, 1, 2, 4}; int size = sizeof(arr) / sizeof(arr[0]); // 使用升序比较函数进行排序 Sort(arr, size, Ascending); // 使用降序比较函数进行排序 Sort(arr, size, Descending); return 0; }
在上面的代码中,CompareFunc
是一个函数指针,指向一个接受两个 int
类型的参数并返回一个 bool
类型的比较函数。我们定义了两个比较函数 Ascending
和 Descending
,它们将两个数字进行升序和降序比较。
Sort
函数使用传入的比较函数对数组 arr
CompareFunc
ialah penuding fungsi kepada fungsi yang menerima dua bool
. Kami mentakrifkan dua fungsi perbandingan Turun
, yang membandingkan dua nombor dalam tertib menaik dan menurun. 🎜🎜Fungsi Isih
mengisih tatasusunan arr
menggunakan fungsi perbandingan yang diluluskan. Dengan menggunakan penunjuk fungsi, kita boleh memilih fungsi perbandingan berbeza secara fleksibel untuk melaksanakan algoritma pengisihan yang berbeza. 🎜Atas ialah kandungan terperinci Senario aplikasi penunjuk fungsi C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!