Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk mencipta dan menggunakan petunjuk fungsi generik C++?
Penuding fungsi generik ialah penunjuk kepada fungsi pelbagai jenis dan bilangan parameter dalam C++. Mencipta penuding fungsi generik memerlukan penggunaan templat, yang menentukan jenis nilai pulangan fungsi dan tuple jenis parameter. Penunjuk fungsi generik boleh digunakan dengan sintaks berikut: mengisytiharkan penuding fungsi, menetapkan fungsi kepada penuding fungsi dan memanggil fungsi yang ditunjuk oleh penuding fungsi. Dalam kes praktikal, penunjuk fungsi generik digunakan untuk melaksanakan fungsi perbandingan bagi algoritma pengisihan, yang boleh mengisih unsur jenis yang berbeza.
Cara mencipta dan menggunakan penunjuk fungsi generik C++
Dalam C++, penunjuk fungsi ialah penunjuk kepada fungsi. Penunjuk fungsi generik boleh menunjuk kepada fungsi pelbagai jenis dan bilangan parameter.
Buat penunjuk fungsi generik
Untuk mencipta penunjuk fungsi generik, anda boleh menggunakan templat:
template <typename Ret, typename... Args> using GenericFunctionPointer = Ret (*)(Args...);
di mana:
Ret
是函数的返回值类型。Args
Args
ialah tuple jenis parameter fungsi. using FuncPtr = std::string (*)(int);Menggunakan Penunjuk Fungsi Generik Anda boleh menggunakan penuding fungsi generik menggunakan sintaks berikut:
Kes Praktikal
Pertimbangkan algoritma pengisihan yang boleh mengisih unsur pelbagai jenis (seperti integer atau rentetan). Kita boleh menggunakan penuding fungsi generik untuk melaksanakan fungsi perbandingan yang membandingkan dua elemen dan mengembalikan integer, bergantung pada hubungan saiz elemen.FuncPtr funcPtr; // 声明函数指针 // 将函数赋值给函数指针 funcPtr = [](int x) { return std::to_string(x); }; // 调用通过函数指针指向的函数 std::string result = funcPtr(42);Menggunakan pelaksanaan ini, kita boleh mengisih tatasusunan integer seperti ini:
template <typename T> int compare(const T& a, const T& b) { // 比较两个元素并返回 -1 (a < b)、0 (a == b)或 1 (a > b) // ... } template <typename T> void sort(T* array, int length, GenericFunctionPointer<int, const T&, const T&> compareFunc) { // 使用比较函数对数组进行排序 // ... }atau tatasusunan rentetan: 🎜
int arr[] = {3, 1, 4, 2}; sort(arr, 4, compare<int>);
Atas ialah kandungan terperinci Bagaimana untuk mencipta dan menggunakan petunjuk fungsi generik C++?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!