Fungsi rekursif generik ditakrifkan melalui templat, membenarkan fungsi untuk menentukan kelakuannya apabila menentukan jenis. Sebagai contoh, pencarian fungsi generik boleh digunakan untuk mencari elemen dalam senarai terpaut Ia menerima penunjuk kepada senarai terpaut dan nilai sasaran sebagai hujah sehingga nilai sasaran ditemui atau penghujung senarai terpaut dicapai.
C++ Senario aplikasi pengaturcaraan generik bagi fungsi rekursif
Rekursi ialah teknik pengaturcaraan biasa yang membenarkan fungsi memanggil dirinya sendiri. Dalam C++, teknik pengaturcaraan generik membenarkan fungsi rekursif disarikan ke dalam bentuk yang lebih umum, membolehkan mereka mengendalikan jenis data yang berbeza.
Fungsi rekursif generik
Fungsi rekursif generik ditakrifkan menggunakan templat, yang membolehkan kami menentukan gelagat khusus fungsi apabila menentukan jenis. Sebagai contoh, berikut ialah fungsi rekursif generik yang mencari elemen dalam senarai terpaut:
template <typename T> T find(T* head, T value) { if (head == nullptr) { return nullptr; } if (head->data == value) { return head; } return find(head->next, value); }
Fungsi ini menerima penuding head
jenis generik T
dan Nilai <code>nilai
jenis T dan melintasi senarai terpaut secara rekursif sehingga sama ada nilai
ditemui atau penghujung senarai terpaut dicapai. T
的指针 head
和一个 T
类型的值 value
,并递归地遍历链表,直到找到 value
或到达链表末尾。
实战案例
让我们创建一个简单的链表并使用 find
Contoh Praktikal
Mari kita buat senarai terpaut mudah dan cari elemen di dalamnya menggunakan fungsicari
: 🎜struct Node { int data; Node* next; }; int main() { Node* head = new Node{1, new Node{2, new Node{3, nullptr}}}; int value = 3; Node* result = find(head, value); cout << (result != nullptr ? "Found value: " + to_string(result->data) : "Value not found") << endl; return 0; }
Found value: 3
Atas ialah kandungan terperinci Senario aplikasi pengaturcaraan generik bagi fungsi rekursif C++?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!