Lambdy C++

  • Rejestracja: dni
  • Ostatnio: dni
0

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.

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
1

Do obfuskowania kodu ;]

robcio
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Opole
  • Postów: 533
0

przydaje się to przy operacji na algorytmach STla do definiowania predykatów. Nie trzeba umieszczać osobno funkcji tylko się piszę wszystko w jednym miejscu.

satirev
  • Rejestracja: dni
  • Ostatnio: dni
0

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
0

Okej, rozumiem :D
Teraz tylko mała prośba, o jakiś prosty przykład.

satirev
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
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
0

Okej, dzięki :D

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0

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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.