Maison > développement back-end > C++ > le corps du texte

Comparaison des modèles C++ et des génériques ?

WBOY
Libérer: 2024-06-04 16:24:12
original
369 Les gens l'ont consulté

La différence entre les modèles et les génériques en C++ : Modèles : définis au moment de la compilation, clairement typés, haute efficacité et petite taille de code. Génériques : typage à l'exécution, interface abstraite, offre flexibilité, faible efficacité.

Comparaison des modèles C++ et des génériques ?

Comparaison des modèles C++ et des génériques

Concept

  • Modèle : Un bloc de code défini au moment de la compilation, qui peut générer différents codes en fonction de types de données spécifiques.
  • Génériques : Interfaces abstraites où le code peut opérer sur différents types de données, saisies au moment de l'exécution. "Différence"

TapéExplicite

InféréEfficacitéplus rapideplus lenttaille du codeplus petiteplus petitecas réelmodèle:
template<typename T>
T max(T a, T b) {
  return (a > b) ? a : b;
}
Copier après la connexion
int max_int = max(10, 20); // 输出:20
double max_double = max(3.14, 2.71); // 输出:3.14
Copier après la connexion
Génériques :
class NumberComparator {
public:
  bool operator()(int a, int b) const {
    return a < b;
  }
};
Copier après la connexion
Cette classe générique implémente l'interface de comparaison d'entiers et peut être utilisée pour différents algorithmes de tri :
std::vector<int> numbers = {5, 2, 8, 3, 1};
std::sort(numbers.begin(), numbers.end(), NumberComparator());

for (auto& number : numbers) {
  std::cout << number << " "; // 输出:1 2 3 5 8
}
Copier après la connexion
Conclusion
Cette fonction de modèle peut calculer différents types de données La valeur maximale, par exemple :
Les modèles et les génériques sont de puissantes fonctionnalités C++ pour le code qui gère différents Types de données. Les modèles sont saisis au moment de la compilation, ce qui les rend plus efficaces et plus petits en termes de taille de code. Les génériques effectuent une inférence de type au moment de l'exécution et fournissent une interface plus abstraite, mais sont légèrement moins efficaces.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal