首页 > 后端开发 > C++ > 正文

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

王林
发布: 2024-04-17 18:03:01
原创
1098 人浏览过

使用 C Lambda 表达式自定义排序规则,可灵活定义排序逻辑。语法为:[capture list](parameters) -> return type { body }。实战案例中,lambda 表达式 sortLambda 按字符串长度排序,输出为:dog、apple、banana、cherry、elephant。

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

用 C Lambda 表达式自定义排序规则

Lambda 表达式是一种匿名函数,可以在 C 中用来定义自定义排序规则。它提供了简便灵活的方式,使您可以根据自定义逻辑对数据进行排序。

语法

典型的 lambda 表达式语法如下:

[capture list](parameters) -> return type { body }
登录后复制

其中:

  • 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 的长度。排序函数 sort 使用此 lambda 表达式对字符串向量进行排序,按字符串的长度升序排列。

以上是用 C++ lambda 表达式自定义排序规则如何实现?的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板