C++의 ʎ 함수에 대해 조금 알아보세요 💎

6714 단어 cpp

C++에서 람다 함수는 꽤 유명합니다. 그리고 수많은 기능으로 코드를 더 읽기 쉽게 만듭니다. 그럼 👀에 대해 알아보도록 하겠습니다.



C++에서 람다 함수의 구문에 대해 이야기할 때 완전히 다릅니다.

우리는 학습 경로에서 복잡한 코드를 따르지 않고 항상 일을 더 간단하게 만들려고 노력합니다.
[ captures ] ( params ) -> return_type { body_statements }

먼저 캡처에 대해 이해하려고 합니다. 함수 외부에 정의된 변수가 필요할 때 캡처를 사용하여 변수의 복제본을 만듭니다.



[ ] { }      // no captures
[=] { }      // everything by copy(not recommended)
[&] { }      // everything by reference(not recommended)
[x] { }      // x by copy
[&x] { }     // x by reference
[&, x] { }   // x by copy, everything else by reference
[=, &x] { }  // x by reference, everything else by copy

If we capture by copy that's make the clone of the variable only, they don't affect actual variables. But when we capture by reference we able to change the value of the variable inside that function.


  • Hello World 프로그램으로 람다 함수를 이해해 보세요.

  • auto say_hello = [] {
        cout << "Hello World!";
    };
    

  • 함수 외부에서 정의하는 변수를 사용하십시오.

  • // init varible with value
    int a = 10;
    // lambda function
    auto print_a = [a] ( ) {
        cout << a;
    };
    print_a(); \\ output is 10
    

  • 함수 외부에서 정의하는 변수의 값을 변경합니다.

  • // init varible with value
    int a = 10;
    // lambda function
    auto print_a = [a] ( ) {
         a = 12;
         cout << a;
    };
    print_a(); \\ output is 12
    
    

    이제 캡처의 개념이 꽤 명확해진 것 같습니다.

    이제 params로 넘어갑니다. params는 매개변수의 유일한 짧은 이름입니다. 🥱 이 개념은 다들 잘 아실 거라 생각합니다. 그러나 여전히 람다 함수의 매개 변수에 대한 간단한 예를 제공하고 싶습니다.



    auto sum = [](int a, int b) {
            return a + b;
    }
    cout << sum(10,4); // Output is 14
    

    이제 마지막은 return_type이고 C++ 20 이후에는 반환 유형이 선택 사항입니다. 람다 함수의 반환 유형을 지정할 필요가 없습니다.



    But still we may specify return type with using -> sign.



    auto sum = [](int a, int b) -> int {
            return a + b;
    };
    

    🎉✨✨🎉🎊🎊🎉🎉✨✨🎉🎊🎊🎉
    dvlpr_roshan( Roshan Kumar )을 사용하여 몇 분 안에 C++ 람다 함수를 배운 것을 축하합니다.

    그래도 고급 기능으로 람다 기능을 조금 더 배우고 싶은 사람.
  • 실제로 C++에서 람다 함수의 실제 구문은 다음과 같습니다.[ captures ] <tparams> ( params ) specifiers exception attr -> return_type {body_statements}

  • 다음 링크는 C++의 람다 함수 개념에 대해 자세히 알아보는 데 도움이 될 수 있습니다.
  • https://en.cppreference.com/w/cpp/language/lambda
  • https://docs.microsoft.com/en-us/cpp/cpp/lambda-expressions-in-cpp?view=vs-2019
  • 좋은 웹페이지 즐겨찾기