Les fonctions récursives génériques sont définies via des modèles, permettant à la fonction de définir son comportement lors de la spécification du type. Par exemple, la fonction générique find peut être utilisée pour rechercher un élément dans une liste chaînée. Elle accepte un pointeur vers la liste chaînée et une valeur cible comme arguments jusqu'à ce que la valeur cible soit trouvée ou que la fin de la liste soit atteinte.
C++ Scénarios d'application de programmation générique de fonctions récursives
La récursion est une technique de programmation courante qui permet à une fonction de s'appeler elle-même. En C++, les techniques de programmation génériques permettent d'abstraire les fonctions récursives sous une forme plus générale, leur permettant de gérer différents types de données.
Fonctions récursives génériques
Les fonctions récursives génériques sont définies à l'aide de modèles, qui nous permettent de spécifier le comportement spécifique de la fonction lors de la spécification du type. Par exemple, voici une fonction récursive générique qui trouve un élément dans une liste chaînée :
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); }
Cette fonction accepte un pointeur head
de type générique T
et un Une valeur <code>value
de type T et parcourt récursivement la liste chaînée jusqu'à ce que valeur
soit trouvée ou que la fin de la liste chaînée soit atteinte. T
的指针 head
和一个 T
类型的值 value
,并递归地遍历链表,直到找到 value
或到达链表末尾。
实战案例
让我们创建一个简单的链表并使用 find
Exemple pratique
Créons une liste chaînée simple et trouvons un élément dedans à l'aide de la fonctionfind
: 🎜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
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!