Do czego konkretnego przydają się lambdy?
Jeszcze nie udało mi się znaleźć takiego zastosowania, gdzie przyśpieszyłaby prace / zmniejszyła objętość kodu / jakieś cuda zrobiła.
Lambdy C++
- Rejestracja: dni
- Ostatnio: dni
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Wrocław
- Postów: 13042
Do obfuskowania kodu ;]
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Opole
- Postów: 533
przydaje się to przy operacji na algorytmach STla do definiowania predykatów. Nie trzeba umieszczać osobno funkcji tylko się piszę wszystko w jednym miejscu.
- Rejestracja: dni
- Ostatnio: dni
Ja stosuję lambdy tam, gdzie potrzebuję uzyskać jakąś funkcjonalność, ale sama funkcjonalność nie nadaje się zbytnio na osobną metodę. (Grunt żeby taka funkcja była stosunkowo mała). Lubię stosować lambdy w funkcjach z algorithm.
- Rejestracja: dni
- Ostatnio: dni
Okej, rozumiem :D
Teraz tylko mała prośba, o jakiś prosty przykład.
- Rejestracja: dni
- Ostatnio: dni
std::string foo = "abcdeasdasd";
const char buzz = 'a';
int result = std::count_if(foo.cbegin(), foo.cend(), [&](const char letter)->bool { return letter == buzz; });
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Space: the final frontier
- Postów: 26433
Labdy przydają się kiedy chciałbyś wewnątrz funkcji wykonać jakieś zachowanie zdefiniowane później przez użytkownika. Predykaty w sortowaniu to jest jakiśtam przykład takiego zachowania. Innym przykładem może być coś takiego:
Piszesz funkcję trawersującą drzewo katalogów w systemie plików, która przyjmuje dwa argumenty: funkcję zwracającą boolean która mówi o ty czy dany plik nas "initeresuje" oraz funkcję która robi "coś" z plikuiem.
Jeśli funkcje które chcesz tam podać jako argumenty są trywialne to może się okazać że warto użyć tam lambdy.