Mündəricat:

C++ lambda nədir?
C++ lambda nədir?

Video: C++ lambda nədir?

Video: C++ lambda nədir?
Video: C++ - lambda expressions 2024, Noyabr
Anonim

C++ 11 və daha sonra, a lambda ifadə - çox vaxt a deyilir lambda - anonim funksiya obyektini (bağlama) birbaşa onun çağırıldığı və ya funksiyaya arqument kimi ötürüldüyü yerdə təyin etməyin əlverişli üsuludur.

Bununla əlaqədar olaraq, Lambda C++ hansı növüdür?

[C++11: 5.1. 2/3]: The növü -nin lambda -ifadə (bu da növü bağlanma obyektinin) unikal, adı açıqlanmayan birləşməyən sinifdir növü - bağlanma adlanır növü - xassələri aşağıda təsvir olunan. Bu sinif növü məcmu deyil (8.5.

Bundan əlavə, niyə C++ dilində lambda ifadələrinə ehtiyacımız var? C++ təqdim edilmiş funksiya obyektləri və ya funktorlar. Funktorlar var operatoru () yükləyən siniflər. Haskell, C#, Erlang və ya F# kimi digər proqramlaşdırma dilləri istifadə olunduqları yerdə funksiya təriflərini aktivləşdirir. Bunlar var kimi tanınır lambda ifadələri çünki onun sintaksisi edir ilhamlandı lambda hesablama.

Həm də sual budur ki, C++ dilində lambda funksiyasını necə ötürmək olar?

Lambdanın funksiyaya arqument kimi ötürülməsinin 3 yolu:

  1. Lambda obyektini elan etmək üçün std::funksiyasından istifadə edin. boş lambdaMisal1()
  2. Funksiya növünü elan etmək və ona lambda funksiyası təyin etmək üçün typedef-dən istifadə edin. boş lambdaMisal2()
  3. Lambda elan etmək üçün strukturdan istifadə edin.

Lambda bağlanması nədir?

A lambda mahiyyətcə funksiyaları elan etmək üçün standart metoddan daha çox daxili müəyyən edilmiş funksiyadır. Lambdalar tez-tez obyekt kimi ətrafa ötürülə bilər. A bağlanması gövdəsindən kənar sahələrə istinad edərək ətrafdakı vəziyyəti əhatə edən funksiyadır.