Maison  >  Article  >  développement back-end  >  Comment implémenter des règles de tri personnalisées à l'aide d'expressions lambda C++ ?

Comment implémenter des règles de tri personnalisées à l'aide d'expressions lambda C++ ?

王林
王林original
2024-04-17 18:03:011043parcourir

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.

用 C++ lambda 表达式自定义排序规则如何实现?

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 捕获了对外部变量 ab 的引用,并返回 a 的长度是否小于 b 的长度。排序函数 sortparamè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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn