Utilisez des expressions C++ Lambda pour personnaliser les règles de tri afin de définir de manière flexible la logique de tri. La syntaxe est la suivante : [liste de capture] (paramètres) -> type de retour { corps }. Dans le cas réel, l'expression lambda sortLambda trie par longueur de chaîne et le résultat est : chien, pomme, banane, cerise, éléphant.
Classement personnalisé avec expression Lambda C++
L'expression Lambda est une fonction anonyme qui peut être utilisée pour définir un classement personnalisé en C++. Il offre un moyen simple et flexible de trier vos données en fonction d'une logique personnalisée.
Syntaxe
La syntaxe typique de l'expression lambda est la suivante :
[capture list](parameters) -> return type { body }
Où :
capture list
: facultatif, utilisé pour capturer les références à des variables externes. capture list
:可选,用于捕获对外部变量的引用。parameters
:可选,用于获取输入参数。-> return type
:可选,用于指定返回类型。body
:函数体,包含要执行的代码。实战案例
下面是一个使用 lambda 表达式自定义排序规则的实战案例,用于对一个字符串向量按其长度排序:
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { vector<string> strings = {"apple", "banana", "cherry", "dog", "elephant"}; // 定义 lambda 表达式,将字符串按长度排序 auto sortLambda = [](const string& a, const string& b) { return a.length() < b.length(); }; // 使用 lambda 表达式对向量排序 sort(strings.begin(), strings.end(), sortLambda); // 打印排序后的向量 for (const string& s : strings) { cout << s << endl; } return 0; }
输出
dog apple banana cherry elephant
在这个示例中,lambda 表达式 sortLambda
捕获了对外部变量 a
和 b
的引用,并返回 a
的长度是否小于 b
的长度。排序函数 sort
paramètres
: Facultatif, utilisé pour obtenir les paramètres d'entrée.
-> type de retour
: Facultatif, utilisé pour spécifier le type de retour. 🎜body
: Corps de la fonction, contenant le code à exécuter. 🎜🎜Cas pratique🎜🎜🎜Ce qui suit est un cas pratique utilisant une expression lambda pour personnaliser les règles de tri, qui est utilisée pour trier un vecteur chaîne par sa longueur : 🎜rrreee🎜🎜Output🎜🎜rrreee 🎜 Dans cet exemple, l'expression lambda sortLambda
capture les références aux variables externes a
et b
et renvoie a
. la longueur du code> est inférieure à la longueur de b
. La fonction de tri sort
utilise cette expression lambda pour trier un vecteur de chaînes par ordre croissant de leur longueur. 🎜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!