Maison  >  Article  >  développement back-end  >  Comment écrire une fonction modèle C++ ?

Comment écrire une fonction modèle C++ ?

WBOY
WBOYoriginal
2024-06-01 13:30:56436parcourir

Étapes pour écrire une fonction de modèle C++ : Déclarez les paramètres de modèle entre crochets . Lorsqu'il est appelé, le compilateur déduit les types de paramètres. Plusieurs paramètres de modèle peuvent être utilisés. Cas pratique : écrire une fonction qui compare des valeurs de différents types.

Comment écrire une fonction modèle C++ ?

Un guide pour écrire des fonctions de modèle C++

Les fonctions de modèle C++ sont un outil puissant qui vous permet d'écrire du code réutilisable qui fonctionne avec une variété de types de données. Voici un guide étape par étape pour écrire des fonctions de modèle C++ :

1. Syntaxe

Les fonctions de modèle sont déclarées à l'aide de paramètres de modèle placés entre crochets . La fonction est déclarée comme suit :

template<typename T>
T max(T a, T b) {
  if (a > b) {
    return a;
  } else {
    return b;
  }
}

<typename t></typename> est un paramètre de modèle, ce qui signifie que la fonction sera applicable à tout type de données qui la suit. <typename t></typename> 是模板参数,它表示函数将适用于其后跟的任何数据类型。

2. 类型推断

调用模板函数时,编译器将推断模板参数的类型。例如,如果调用:

int max_value = max(10, 20);

编译器将推断 <t></t>int,因此调用类似于:

int max(int a, int b) {
  // ...
}

3. 多个模板参数

模板函数可以有多个模板参数。例如,您可以编写一个两个模板参数的 max

2. Inférence de type

Lors de l'appel d'une fonction de modèle, le compilateur déduira le type du paramètre de modèle. Par exemple, si vous appelez :

template<typename T, typename U>
std::pair<T, U> max(T a, U b) {
  if (a > b) {
    return {a, b};
  } else {
    return {b, a};
  }
}

, le compilateur déduira que <t></t> est int, donc l'appel ressemble à :

template<typename T>
bool is_greater(T a, T b) {
  return a > b;
}

3. paramètres

Les fonctions de modèle peuvent avoir plusieurs paramètres de modèle. Par exemple, vous pouvez écrire une fonction max avec deux paramètres de modèle :

bool is_greater_int = is_greater(10, 20);  // true
bool is_greater_float = is_greater(1.5f, 2.5f);  // true

🎜Exemple pratique : Comparaison de valeurs de différents types🎜🎜🎜Considérez le scénario suivant : Vous disposez d'une fonction qui compare des valeurs ​​de différents types, tels que des entiers et des nombres à virgule flottante. Pour ce faire, vous pouvez écrire une fonction modèle : 🎜rrreee🎜 Cette fonction fonctionne pour tout type de données comparable. Vous pouvez l'appeler ainsi : 🎜rrreee🎜🎜Conclusion🎜🎜🎜En suivant ces étapes, vous pouvez facilement écrire des fonctions de modèle C++. Cela vous permettra d'écrire du code réutilisable et polyvalent, quel que soit le type de données. 🎜

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!

Déclaration:
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