汎用プログラミングにおける C++ 関数のデフォルト パラメーターと変数パラメーターの役割

WBOY
リリース: 2024-04-22 22:15:01
オリジナル
551 人が閲覧しました

C のデフォルト パラメーターと可変引数パラメーターは、ジェネリック プログラミングで重要な役割を果たします。デフォルト パラメーターを使用すると、関数が呼び出されるときにオプションのパラメーターを指定できるようになり、さまざまな型やデフォルト値の要素を簡単に処理できるようになります。可変個引数を使用すると、関数は任意の数の引数を受け入れることができるため、可変数の要素を簡単に処理できるようになります。実際のケースでは、汎用コンテナー (ベクターやマップなど) はデフォルト パラメーターと可変長パラメーターを広範囲に使用し、要素タイプとデフォルトのコンテナー サイズを指定できるようにします。

C++ 函数默认参数和可变参数在泛型编程中的作用

汎用プログラミングにおける C 関数のデフォルト パラメーターと変数パラメーターの役割

C では、関数のデフォルト パラメーターと可変引数は、特に汎用プログラミングにおいて、柔軟で再利用可能なコードを実現するための強力なツール。汎用コードがどのようにしてより強力になるのかを見てみましょう。

デフォルト パラメータ

デフォルト パラメータを使用すると、関数を呼び出すときにオプションのパラメータを指定できます。構文は次のとおりです。

template <typename T>
void printValue(T value, T default_value = 0) {
  cout << value << endl;
}
ログイン後にコピー

この関数は、デフォルト値を指定せずに呼び出すことができます:

printValue(10); // 输出 10
ログイン後にコピー

デフォルト値を指定することもできます:

printValue(20, 30); // 输出 20
ログイン後にコピー

Default パラメータが便利です関数が異なるタイプとデフォルト値を持つ要素を処理できるため、汎用プログラミングに使用されます。たとえば、次のコードはデフォルト パラメーターを使用してベクトルを初期化します。

template <typename T>
vector<T> initializeVector(int size, T default_value = 0) {
  vector<T> vec(size, default_value);
  return vec;
}
ログイン後にコピー

可変個引数パラメーター

可変個引数パラメーターを使用すると、関数は任意の数の引数を受け入れることができます。構文は次のとおりです。

template <typename... Args>
void printValues(Args... values) {
  for (auto&& value : values) {
    cout << value << " ";
  }
  cout << endl;
}
ログイン後にコピー

関数は、任意の数の引数を指定して呼び出すことができます。

printValues(1, 2, 3); // 输出 1 2 3
ログイン後にコピー

可変引数は、関数が可変数の要素を処理できるため、ジェネリック プログラミングで役立ちます。 。たとえば、次のコードは変数パラメーターを使用してリストの合計を計算します。

template <typename... Args>
int sumValues(Args... values) {
  int sum = 0;
  for (auto&& value : values) {
    sum += value;
  }
  return sum;
}
ログイン後にコピー

実用的なケース: 汎用コンテナー

汎用コンテナー内のデフォルト パラメーターと変数パラメーター ( vectormap など) が広く使用されています。これらのコンテナでは、要素タイプとデフォルトのコンテナ サイズを指定できます。例:

vector<int> numbers(100, 0); // 初始化一个包含 100 个值为 0 的整数向量
map<string, int> scores = {{"Alice", 90}, {"Bob", 80}}; // 初始化一个包含两个键值对的字符串到整数映射
ログイン後にコピー

結論

デフォルト パラメーターと可変引数パラメーターは、関数をより柔軟で再利用可能にする C の強力な機能です。汎用プログラミングでは、関数がさまざまな型や数値を持つ要素を処理できるようになります。これらの機能を利用すると、より強力でクリーンな汎用コードを作成できます。

以上が汎用プログラミングにおける C++ 関数のデフォルト パラメーターと変数パラメーターの役割の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート