목차
C++ 람다 표현식: 함수형 프로그래밍을 위한 강력한 도구
Syntax
연습 사례
백엔드 개발 C++ 함수형 프로그래밍에서 C++ 람다 표현식은 어떻게 사용됩니까?

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

Jun 04, 2024 pm 08:31 PM
c++

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으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

C++ 동시 프로그래밍에서 데이터 구조의 동시성 안전 설계? C++ 동시 프로그래밍에서 데이터 구조의 동시성 안전 설계? Jun 05, 2024 am 11:00 AM

C++ 동시 프로그래밍에서 데이터 구조의 동시성 안전 설계?

C++ 객체 레이아웃은 메모리에 맞춰 정렬되어 메모리 사용 효율성을 최적화합니다. C++ 객체 레이아웃은 메모리에 맞춰 정렬되어 메모리 사용 효율성을 최적화합니다. Jun 05, 2024 pm 01:02 PM

C++ 객체 레이아웃은 메모리에 맞춰 정렬되어 메모리 사용 효율성을 최적화합니다.

C++ STL에서 사용자 정의 비교기를 구현하는 방법은 무엇입니까? C++ STL에서 사용자 정의 비교기를 구현하는 방법은 무엇입니까? Jun 05, 2024 am 11:50 AM

C++ STL에서 사용자 정의 비교기를 구현하는 방법은 무엇입니까?

C++에서 전략 디자인 패턴을 구현하는 방법은 무엇입니까? C++에서 전략 디자인 패턴을 구현하는 방법은 무엇입니까? Jun 06, 2024 pm 04:16 PM

C++에서 전략 디자인 패턴을 구현하는 방법은 무엇입니까?

Golang과 C++의 유사점과 차이점 Golang과 C++의 유사점과 차이점 Jun 05, 2024 pm 06:12 PM

Golang과 C++의 유사점과 차이점

C++ STL 컨테이너를 복사하는 방법은 무엇입니까? C++ STL 컨테이너를 복사하는 방법은 무엇입니까? Jun 05, 2024 am 11:51 AM

C++ STL 컨테이너를 복사하는 방법은 무엇입니까?

C++ 스마트 포인터의 기본 구현 원칙은 무엇입니까? C++ 스마트 포인터의 기본 구현 원칙은 무엇입니까? Jun 05, 2024 pm 01:17 PM

C++ 스마트 포인터의 기본 구현 원칙은 무엇입니까?

Actor 모델을 기반으로 C++ 다중 스레드 프로그래밍을 구현하는 방법은 무엇입니까? Actor 모델을 기반으로 C++ 다중 스레드 프로그래밍을 구현하는 방법은 무엇입니까? Jun 05, 2024 am 11:49 AM

Actor 모델을 기반으로 C++ 다중 스레드 프로그래밍을 구현하는 방법은 무엇입니까?

See all articles