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; }
実用的なケース: 汎用コンテナー
汎用コンテナー内のデフォルト パラメーターと変数パラメーター ( vector
や map
など) が広く使用されています。これらのコンテナでは、要素タイプとデフォルトのコンテナ サイズを指定できます。例:
vector<int> numbers(100, 0); // 初始化一个包含 100 个值为 0 的整数向量 map<string, int> scores = {{"Alice", 90}, {"Bob", 80}}; // 初始化一个包含两个键值对的字符串到整数映射
結論
デフォルト パラメーターと可変引数パラメーターは、関数をより柔軟で再利用可能にする C の強力な機能です。汎用プログラミングでは、関数がさまざまな型や数値を持つ要素を処理できるようになります。これらの機能を利用すると、より強力でクリーンな汎用コードを作成できます。
以上が汎用プログラミングにおける C++ 関数のデフォルト パラメーターと変数パラメーターの役割の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。