Jedną z rzeczy, które po prostu unikają pisania podstawowych algorytmów w C ++ 11, jest dostępność lambd w połączeniu z algorytmami zapewnianymi przez standardową bibliotekę.
Używam ich teraz i to niewiarygodne, jak często mówisz, co chcesz zrobić, używając count_if (), for_each () lub innych algorytmów zamiast pisać ponownie cholerne pętle.
Kiedy używasz kompilatora C ++ 11 z pełną biblioteką standardową C ++ 11, nie masz już żadnej wymówki, by nie używać standardowych algorytmów do budowania własnych . Lambda po prostu go zabij.
Czemu?
W praktyce (po tym, jak sam użyłem tego sposobu pisania algorytmów), znacznie łatwiej jest przeczytać coś, co jest zbudowane z prostych słów oznaczających to, co się dzieje, niż z niektórymi pętlami, które musisz odszyfrować, aby poznać znaczenie. To powiedziawszy, automatyczne obliczanie argumentów lambda bardzo pomogłoby uczynić składnię łatwiejszą do porównania z surową pętlą.
Zasadniczo algorytmy odczytu wykonane przy użyciu standardowych algorytmów są znacznie łatwiejsze, ponieważ słowa ukrywające szczegóły implementacji pętli.
Zgaduję, że należy teraz myśleć tylko o algorytmach wyższego poziomu, ponieważ mamy algorytmy niższego poziomu do zbudowania.