Բովանդակություն:

Ի՞նչ է C++ լամբդան:
Ի՞նչ է C++ լամբդան:

Video: Ի՞նչ է C++ լամբդան:

Video: Ի՞նչ է C++ լամբդան:
Video: Java On Conference 2022, JDK 19, Spring Framework 6 և Spring Boot 3 [MJC News #11] 2024, Նոյեմբեր
Anonim

C++11-ում և ավելի ուշ՝ ա լամբդա արտահայտություն, որը հաճախ կոչվում է a լամբդա - անանուն ֆունկցիայի օբյեկտի (փակման) սահմանման հարմար միջոց է հենց այն վայրում, որտեղ այն կանչվում է կամ որպես արգումենտ փոխանցվում ֆունկցիային:

Ինչ վերաբերում է այս հարցին, ի՞նչ տեսակ է Lambda C++-ը:

[C++11: 5.1. 2/3] տիպ որ լամբդա -արտահայտություն (որը նաև տիպ փակման օբյեկտի) եզակի, անանուն ոչ միության դաս է տիպ - կոչվում է փակումը տիպ - որի հատկությունները նկարագրված են ստորև: Այս դասը տիպ ագրեգատ չէ (8.5.

Բացի այդ, ինչո՞ւ են մեզ պետք լամբդա արտահայտությունները C++-ում: C++ ներդրված ֆունկցիայի օբյեկտներ կամ ֆունկցիաներ: Ֆունկտորներ են դասեր, որոնք ծանրաբեռնում են օպերատորը(). Ծրագրավորման այլ լեզուներ, ինչպիսիք են Haskell-ը, C#-ը, Erlang-ը կամ F#-ը, հնարավորություն են տալիս ֆունկցիաների սահմանումները հենց այնտեղ, որտեղ դրանք օգտագործվում են: Սրանք են հայտնի որպես լամբդա արտահայտություններ քանի որ դրա շարահյուսությունը է ներշնչված լամբդա հաշվարկ.

Նաև հարցն այն է, թե ինչպես եք փոխանցում լամբդա ֆունկցիան C++-ում:

Լամբդա որպես արգումենտ գործառույթին փոխանցելու 3 եղանակ

  1. Օգտագործելով std::function՝ լամբդա օբյեկտ հայտարարելու համար: void lambdaՕրինակ1()
  2. Օգտագործելով typedef ֆունկցիայի տեսակը հայտարարելու և նրան lambda ֆունկցիա նշանակելու համար: void lambdaՕրինակ2()
  3. Օգտագործելով struct՝ լամբդա հայտարարելու համար:

Ի՞նչ է լամբդա փակումը:

Ա լամբդա ըստ էության ֆունկցիա է, որը սահմանվում է ներգծային, այլ ոչ թե գործառույթների հայտարարման ստանդարտ մեթոդ: Լամբդա հաճախ կարող է փոխանցվել որպես առարկաներ: Ա փակում ֆունկցիա է, որը պարփակում է իր շրջապատող վիճակը՝ հղում անելով իր մարմնի արտաքին դաշտերին: