Maison >développement back-end >C++ >Modèles de fonctions C++ et programmation générique
Les modèles de fonctions C++ et la programmation générique permettent la création de code générique qui accepte différents types de données, obtenant ainsi une indépendance de type grâce à des paramètres de type et des classes de modèles. Les avantages incluent la réutilisabilité du code, la sécurité des types et l’optimisation des performances. Les modèles de fonctions (comme « print ») et les classes génériques (comme « Vector ») vous permettent d'écrire du code sans type, efficace et réutilisable.
Modèles de fonctions C++ et programmation générique
Introduction
Les modèles de fonctions vous permettent de créer des fonctions génériques qui acceptent différents types de données. La programmation générique étend davantage ce concept, vous permettant d'écrire du code indépendant du type, efficace et réutilisable.
Modèles de fonctions
Les modèles de fonctions utilisent des paramètres de type pour représenter les types de données d'espace réservé. Par exemple :
template<typename T> void print(T value) { std::cout << value << std::endl; }
Cette fonction de modèle accepte une valeur de n'importe quel type de données T
et l'imprime sur la console. T
的值并将其打印到控制台。
泛型编程
泛型编程将类型参数从函数中分离出来,方法是使用模板类。例如:
template<typename T> class Vector { public: T* data; int size; Vector() : data(nullptr), size(0) {} ~Vector() { delete[] data; } // ...其他方法... };
这个 Vector
Programmation génériqueLa programmation générique sépare les paramètres de type des fonctions en utilisant des classes de modèles. Par exemple :
template<typename T> void sort(Vector<T>& v) { for (int i = 0; i < v.size - 1; i++) { for (int j = i + 1; j < v.size; j++) { if (v.data[j] < v.data[i]) { std::swap(v.data[i], v.data[j]); } } } }La classe
Vector
peut stocker tout type d'élément de données. Tri des vecteursVoici un exemple d'algorithme de tri générique :
rrreeeCe 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!