>  기사  >  백엔드 개발  >  C++ 람다 표현식을 사용하여 사용자 정의 정렬 규칙을 구현하는 방법은 무엇입니까?

C++ 람다 표현식을 사용하여 사용자 정의 정렬 규칙을 구현하는 방법은 무엇입니까?

王林
王林원래의
2024-04-17 18:03:011043검색

C++ Lambda 표현식을 사용하여 정렬 규칙을 사용자 정의하여 정렬 논리를 유연하게 정의하세요. 구문은 다음과 같습니다: [캡처 목록](매개변수) -> 반환 유형 { 본문 }. 실제 경우 람다 식 sortLambda는 문자열 길이를 기준으로 정렬하고 출력은 개, 사과, 바나나, 체리, 코끼리입니다.

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

C++ 람다 표현식을 사용한 사용자 정의 데이터 정렬

Lambda 표현식은 C++에서 사용자 정의 데이터 정렬을 정의하는 데 사용할 수 있는 익명 함수입니다. 이는 사용자 정의 논리를 기반으로 데이터를 정렬하는 쉽고 유연한 방법을 제공합니다.

Syntax

일반적인 람다 식 구문은 다음과 같습니다.

[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매개변수: 선택사항이며 입력 매개변수를 얻는 데 사용됩니다.

-> 반환 유형: 선택 사항이며 반환 유형을 지정하는 데 사용됩니다. 🎜body: 실행할 코드가 포함된 함수 본문입니다. 🎜🎜실용 사례🎜🎜🎜다음은 문자열 벡터를 길이별로 정렬하는 데 사용되는 정렬 규칙을 사용자 정의하기 위해 람다 표현식을 사용하는 실제 사례입니다: 🎜rrreee🎜🎜Output🎜🎜rrreee 🎜 이 예에서 람다 식 sortLambda는 외부 변수 ab에 대한 참조를 캡처하고 a를 반환합니다. 코드 길이>가 b 길이보다 작습니다. 정렬 함수 sort는 이 람다 표현식을 사용하여 문자열 벡터를 길이의 오름차순으로 정렬합니다. 🎜

위 내용은 C++ 람다 표현식을 사용하여 사용자 정의 정렬 규칙을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.