Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Senario aplikasi pengaturcaraan generik bagi fungsi rekursif C++?

Senario aplikasi pengaturcaraan generik bagi fungsi rekursif C++?

PHPz
PHPzasal
2024-04-17 15:30:02854semak imbas

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++ 递归函数的泛型编程应用场景?

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 fungsi cari: 🎜
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;
}
🎜Output: 🎜
Found value: 3
🎜Contoh ini menunjukkan bagaimana fungsi rekursif generik jenis data yang berbeza dengan cara yang konsisten, dalam kes ini ia digunakan untuk mencari nilai dalam senarai integer terpaut. 🎜

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn