Orodha ya maudhui:

Lambda ya C++ ni nini?
Lambda ya C++ ni nini?

Video: Lambda ya C++ ni nini?

Video: Lambda ya C++ ni nini?
Video: C++ : Function objects, operator() y lambdas 2024, Mei
Anonim

Katika C++11 na baadaye, a lambda kujieleza-mara nyingi huitwa a lambda -ni njia rahisi ya kufafanua kitu cha kukokotoa kisichojulikana (kufungwa) mahali ambapo kimealikwa au kupitishwa kama hoja kwa chaguo la kukokotoa.

Kuhusiana na hili, Lambda C++ ni ya aina gani?

[C++11: 5.1. 2/3]: The aina ya lambda -jieleza (ambayo pia ni aina ya kitu cha kufungwa) ni darasa la kipekee, lisilo na jina lisilo la muungano aina - inayoitwa kufungwa aina - ambao mali zao zimeelezwa hapa chini. Darasa hili aina sio jumla (8.5.

Kwa kuongeza, kwa nini tunahitaji misemo ya lambda katika C++? C++ ilianzisha vitu vya kukokotoa, au vitendaji. Vitendaji ni madarasa ambayo hupakia opereta (). Lugha zingine za upangaji kama vile Haskell, C#, Erlang au F# huwezesha ufafanuzi wa utendakazi pale zinapotumika. Haya ni inayojulikana kama maneno ya lambda kwa sababu syntax yake ni aliongoza katika lambda hesabu.

Swali pia ni, unapitishaje kazi ya lambda katika C++?

Njia 3 za kupitisha lambda kama hoja kwa kazi:

  1. Kutumia std::function kutangaza kitu cha lambda. utupu lambdaMfano1()
  2. Kutumia typedef kutangaza aina ya kazi na kuikabidhi kazi ya lambda. utupu lambdaMfano2()
  3. Kutumia muundo kutangaza lambda.

Kufungwa kwa lambda ni nini?

A lambda kimsingi ni chaguo la kukokotoa ambalo linafafanuliwa ndani badala ya mbinu ya kawaida ya kutangaza vitendaji. Lambdas inaweza kupitishwa mara kwa mara kama vitu. A kufungwa ni chaguo la kukokotoa linaloambatanisha hali inayozunguka kwa kurejelea nyuga zilizo nje ya mwili wake.