C++ 람다 표현식과 기존 함수의 차이점 람다 표현식과 기존 함수의 주요 차이점은 다음과 같습니다. 익명성: 람다 표현식은 익명이며 함수 이름이 필요하지 않습니다. 구문: 람다 식은 대괄호와 괄호를 사용하여 표현되며 기존 함수는 표준 함수 구문을 사용합니다. 캡처 목록: 람다 표현식은 캡처 목록을 사용하여 외부 변수에 액세스할 수 있는 반면, 기존 함수는 명시적으로 전달된 매개 변수에만 액세스할 수 있습니다. 유형 추론: 람다 표현식은 유형 추론을 지원하는 반면, 기존 함수에는 명시적 유형이 필요합니다.
C++ 람다 표현식과 기존 함수의 차이점
소개
Lambda 표현식은 C++에 도입된 강력한 익명 함수로, 기존 함수와 기능은 비슷하지만 구문은 더 간단합니다. 이 문서에서는 람다 식과 기존 함수 간의 주요 차이점을 살펴보고 이러한 차이점을 설명하는 실제 예제를 제공합니다.
익명성
가장 큰 차이점 중 하나는 람다 표현식이 익명이므로 이름이 없다는 것입니다. 대조적으로, 전통적인 함수는 호출되기 전에 이름을 선언해야 합니다.
Syntax
lambda 식은 아래와 같이 대괄호와 괄호를 사용하여 표현됩니다.
[capture-list] (parameters) -> return-type { function-body };
기존 함수는 다음 구문을 사용합니다.
return-type function-name(parameters) { function-body };
Capture list
lambda 식은 캡처 목록을 사용할 수 있습니다. 외부 범위의 변수에 액세스합니다. 기존 함수는 명시적으로 전달되지 않는 한 외부 변수에 액세스할 수 없습니다.
유형 추론
lambda 표현식은 유형 추론을 지원합니다. 즉, 컴파일러가 람다의 반환 유형과 매개변수 유형을 자동으로 추론할 수 있습니다. 기존 함수에는 명시적인 유형 지정이 필요합니다.
실용 사례
예 1: 벡터 정렬
람다 표현식을 사용하여 정수 벡터를 오름차순으로 정렬:
#include <vector> #include <algorithm> int main() { std::vector<int> v = {3, 1, 4, 2}; std::sort(v.begin(), v.end(), [](int a, int b) { return a < b; }); for (int num : v) { std::cout << num << " "; } std::cout << std::endl; return 0; }
예 2: 평균 계산
람다 표현식을 사용하여 부동 소수점 숫자 계산 평균 벡터:
#include <vector> #include <numeric> int main() { std::vector<float> v = {2.5, 3.1, 4.2, 1.7}; float avg = std::accumulate(v.begin(), v.end(), 0.0, [](float a, float b) { return a + b; }) / v.size(); std::cout << "Average: " << avg << std::endl; return 0; }
결론
람다 식은 기존 함수와 유사점과 차이점이 있습니다. 람다 표현식은 익명이고 유형이 유추되며 외부 변수를 캡처할 수 있어 보다 간결하고 유연한 함수 작성 방법을 제공합니다. 람다 식은 일회성 함수를 빠르게 생성하거나 외부 변수를 처리해야 하는 시나리오에 탁월한 선택입니다.
위 내용은 C++ 람다 표현식과 기존 함수의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!