> 백엔드 개발 > C++ > C++ 람다 표현식을 정의하고 사용하는 방법은 무엇입니까?

C++ 람다 표현식을 정의하고 사용하는 방법은 무엇입니까?

WBOY
풀어 주다: 2024-04-17 09:51:01
원래의
620명이 탐색했습니다.

C++ 람다 표현식은 [캡처 목록](매개변수) -> return_type {function body} 구문을 사용하여 함수를 인라인으로 정의하는 데 사용되는 익명 함수입니다. 외부 범위의 변수를 캡처하고, 매개변수를 전달하고, 반환 유형을 지정할 수 있습니다. 람다 표현식은 함수를 매개변수로 전달하거나 매개변수 전달, 변수 캡처, 목록 정렬과 같은 일부 컨텍스트에서 함수를 정의해야 할 때 사용됩니다.

C++ lambda 表达式如何定义和使用?

C++ 람다 표현식: 정의 및 사용법

소개
Lambda 표현식은 인라인 함수를 간결한 방식으로 정의할 수 있는 C++ 언어의 특별한 익명 함수입니다. 함수를 매개변수로 전달하거나 일부 컨텍스트에서 함수를 정의해야 하는 상황에서 널리 사용됩니다.

Syntax
람다 식 구문은 다음과 같습니다.

[capture list](parameters) -> return_type {
  // 函数体
}
로그인 후 복사

캡처 목록
캡처 목록은 람다 식의 외부 범위에 있는 변수를 캡처하는 데 사용됩니다. 변수는 값이나 참조로 캡처할 수 있습니다.

Parameters
매개변수 목록을 사용하면 매개변수를 람다 표현식에 전달할 수 있습니다.

반환 유형
람다 식이 값을 반환하는 경우 반환 유형을 지정해야 합니다. 그렇지 않은 경우 반환 유형은 void이어야 합니다.

함수 본문
일반 함수와 마찬가지로 함수 본문에는 람다 표현식으로 사용할 코드가 포함되어 있습니다.

Usage
다음은 람다 표현식의 몇 가지 사용 예입니다.

기본 예

[]() { std::cout << "Hello, world!" << std::endl; }();
로그인 후 복사

매개변수 전달

int add(int a, int b) { return a + b; }

[] (int a, int b) { return a + b;  }(5, 6); // 调用 lambda 表达式
로그인 후 복사

변수 캡처

int x = 10;
[x] () { std::cout << "Value of x: " << x << std::endl; }();
로그인 후 복사

실용 사례
필요한 쌍 목록을 고려하세요. 예 숫자 정렬:

std::vector<int> numbers = {2, 5, 1, 3, 4};

std::sort(numbers.begin(), numbers.end(),
    [](int a, int b) { return a < b; });

for (auto num : numbers) {
    std::cout << num << " ";
}
로그인 후 복사

출력:

1 2 3 4 5
로그인 후 복사

Conclusion
Lambda 표현식은 C++에서 인라인 함수를 정의하는 강력한 도구입니다. 코드를 단순화하고 가독성을 높이며 상용구 코드의 필요성을 줄입니다. 구문, 사용법 및 실제 예제를 이해하면 람다 식을 효과적으로 사용하여 다양한 프로그래밍 문제를 해결할 수 있습니다.

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

관련 라벨:
c++
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿