>  기사  >  백엔드 개발  >  함수형 프로그래밍에서 C++ 람다 표현식은 어떻게 사용됩니까?

함수형 프로그래밍에서 C++ 람다 표현식은 어떻게 사용됩니까?

WBOY
WBOY원래의
2024-06-04 20:31:01474검색

C++ 람다 표현식은 편리한 함수형 프로그래밍 도구입니다. 구문은 다음과 같습니다. [capture_list] (parameter_list) -> return_type { body } 실제 사례: 정렬: 문자열 길이로 단어 목록 정렬 필터링: 필터링은 3개의 숫자 목록으로 나눌 수 있습니다.

C++ Lambda 表达式如何用于函数式编程?

C++ 람다 표현식: 함수형 프로그래밍을 위한 강력한 도구

C++에서 람다 표현식은 코드 블록을 함수 매개변수로 전달하거나 값을 반환하는 가장 편리한 방법입니다. 간결한 구문과 강력한 기능으로 인해 함수형 프로그래밍을 위한 강력한 도구가 됩니다.

Syntax

lambda 표현식의 구문 형식은 다음과 같습니다.

[capture_list] (parameter_list) -> return_type { body }
  • capture_list: 람다 본문 내에서 사용할 수 있는 외부 변수 목록을 캡처합니다.
  • parameter_list: 람다 함수의 매개변수 목록입니다.
  • return_type: 선택적 반환 유형입니다.
  • body: lambda 함수 본문.

연습 사례

1. 사례 정렬

문자열 길이에 따라 단어 목록을 정렬하려면

#include <vector>
#include <algorithm>

int main() {
  std::vector<std::string> words = {"Hello", "World", "Lambda", "Expression"};

  std::sort(words.begin(), words.end(),
    [](const std::string& a, const std::string& b) {
      return a.size() < b.size();
    });

  for (const auto& word : words) {
    std::cout << word << "\n";
  }
  return 0;
}

출력:

Hello
Lambda
World
Expression

2. 사용 가능한 목록 필터링 3으로 나눌 수 있는 숫자:

#include <vector>
#include <algorithm>

int main() {
  std::vector<int> numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9};

  std::vector<int> filteredNumbers;
  std::copy_if(numbers.begin(), numbers.end(),
    std::back_inserter(filteredNumbers),
    [](int number) {
      return number % 3 == 0;
    });

  for (const auto& number : filteredNumbers) {
    std::cout << number << "\n";
  }
  return 0;
}

출력:

3
6
9

위 내용은 함수형 프로그래밍에서 C++ 람다 표현식은 어떻게 사용됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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