Maison > Article > développement back-end > Application des paramètres par défaut des fonctions C++ et des paramètres variables dans les expressions Lambda
Dans les expressions Lambda, les paramètres par défaut vous permettent de spécifier les valeurs des paramètres par défaut, tandis que les paramètres variables vous permettent de transmettre un nombre variable de paramètres. Les paramètres par défaut doivent suivre les paramètres requis, tandis que les paramètres variadiques doivent être les derniers paramètres de la fonction. Ces fonctionnalités simplifient le code et améliorent la lisibilité, comme l'ajout de préfixes et de suffixes lorsque vous travaillez avec des listes de chaînes.
Application des paramètres par défaut des fonctions C++ et des paramètres variables dans l'expression Lambda
L'expression Lambda est une fonction anonyme qui permet la création de fonctions au moment de l'exécution. Nous pouvons améliorer la fonctionnalité des expressions Lambda en utilisant des paramètres par défaut et des paramètres variadiques.
Paramètres par défaut
Les paramètres par défaut nous permettent de spécifier des valeurs par défaut pour les paramètres d'une expression Lambda. Si aucun paramètre n'est fourni lors de l'appel, les valeurs par défaut seront utilisées.
int add(int a, int b = 10) { return a + b; } int main() { auto sum = [](int a, int b) { return a + b; }; // 无默认参数 auto sumWithDefaultValue = [](int a, int b = 10) { return a + b; }; // 有默认参数 cout << sum(5, 6) << endl; // 输出: 11 cout << sumWithDefaultValue(5) << endl; // 输出: 15 return 0; }
Paramètres variables
Les paramètres variables nous permettent de transmettre un nombre variable de paramètres à une expression Lambda. Les paramètres variadiques doivent être le dernier paramètre des paramètres de la fonction et sont représentés par ...
.
int sumAll(int n, ...) { va_list args; va_start(args, n); int sum = n; for (int i = 0; i < n; i++) { sum += va_arg(args, int); } va_end(args); return sum; } int main() { auto sumAllLambda = [](int n, ...) { va_list args; va_start(args, n); int sum = n; for (int i = 0; i < n; i++) { sum += va_arg(args, int); } va_end(args); return sum; }; cout << sumAll(3, 1, 2, 3) << endl; // 输出: 9 cout << sumAllLambda(4, 4, 5, 6, 7) << endl; // 输出: 22 return 0; }
Cas pratique
Nous pouvons utiliser des paramètres par défaut et des paramètres variables pour simplifier le code et améliorer la lisibilité. Par exemple, considérons une fonction qui gère une liste de chaînes :
void processStrings(const vector<string>& strings, string defaultPrefix = "", string defaultSuffix = "") { for (const auto& str : strings) { cout << defaultPrefix << str << defaultSuffix << endl; } } int main() { vector<string> names = {"John", "Mary", "Bob"}; cout << "Prefix: \"Mr\", Suffix: \".\"" << endl; processStrings(names, "Mr", "."); // 使用默认参数 cout << "Prefix: empty, Suffix: \"!\"" << endl; processStrings(names, "", "!"); // 只使用可变参数 cout << "No prefix or suffix" << endl; processStrings(names); // 使用所有默认值 return 0; }
Sortie :
Prefix: "Mr", Suffix: "." Mr.John. Mr.Mary. Mr.Bob. Prefix: empty, Suffix: "!" John! Mary! Bob! No prefix or suffix John Mary Bob
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!