ホームページ  >  記事  >  バックエンド開発  >  C++ テンプレート関数を作成するにはどうすればよいですか?

C++ テンプレート関数を作成するにはどうすればよいですか?

WBOY
WBOYオリジナル
2024-06-01 13:30:56431ブラウズ

C++ テンプレート関数を作成する手順: テンプレート パラメーターを山かっこ で囲んで宣言します。呼び出されると、コンパイラはパラメータの型を推測します。複数のテンプレート パラメータを使用できます。実際のケース: 異なる型の値を比較する関数を作成します。

C++ テンプレート関数を作成するにはどうすればよいですか?

C++ テンプレート関数の作成ガイド

C++ テンプレート関数は、さまざまなデータ型で動作する再利用可能なコードを作成できる強力なツールです。 C++ テンプレート関数を作成するためのステップバイステップのガイドは次のとおりです:

1. 構文

テンプレート関数は、山括弧 で囲まれたテンプレート パラメーターを使用して宣言されます。関数は次のように宣言されます:

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

<typename t></typename> はテンプレート パラメーターであり、関数がその後に続くすべてのデータ型に適用できることを意味します。 <typename t></typename> 是模板参数,它表示函数将适用于其后跟的任何数据类型。

2. 类型推断

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

int max_value = max(10, 20);

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

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

3. 多个模板参数

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

2. 型推論

テンプレート関数を呼び出すと、コンパイラはテンプレートパラメータの型を推論します。たとえば、

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

を呼び出すと、コンパイラは <t></t>int であると推論するため、呼び出しは次のようになります:

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

3. 複数のテンプレート。パラメータ

テンプレート関数には複数のテンプレートパラメータを含めることができます。たとえば、2 つのテンプレート パラメーターを使用して max 関数を作成できます:

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

🎜実際の例: 異なる型の値を比較する🎜🎜🎜次のシナリオを考えてみましょう: 値を比較する関数があるとします。整数や浮動小数点数などのさまざまな型。これを行うには、テンプレート関数を作成できます: 🎜rrreee🎜 この関数は、同等のデータ型に対して機能します。次のように呼び出すことができます: 🎜rrreee🎜🎜結論🎜🎜🎜 以下の手順に従うことで、C++ テンプレート関数を簡単に作成できます。これにより、データ型に関係なく、再利用可能で汎用性の高いコードを作成できます。 🎜

以上がC++ テンプレート関数を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。