Однією з речей, яка просто змушує вас уникати написання основних алгоритмів на C ++ 11, є наявність лямбда в поєднанні з алгоритмами, передбаченими стандартною бібліотекою.
Я зараз використовую ці дані, і неймовірно, як часто ви просто говорите, що ви хочете зробити, використовуючи count_if (), for_each () або інші алгоритми, замість того, щоб знову писати прокляті петлі.
Як тільки ви використовуєте компілятор C ++ 11 з повною стандартною бібліотекою C ++ 11, у вас більше немає хорошого приводу не використовувати стандартні алгоритми для побудови своїх . Лямбда просто вб'є.
Чому?
На практиці (після використання цього способу написання алгоритмів я) набагато легше читати щось, що будується з простими словами, що означає те, що робиться, ніж з певних циклів, які потрібно розшифрувати, щоб знати сенс. З цього приводу, автоматичне виведення аргументів лямбда допоможе багато чого зробити синтаксис легше порівнянним із сировинним циклом.
В основному, читання алгоритмів, виготовлених за допомогою стандартних алгоритмів, набагато простіше, оскільки слова приховують деталі реалізації циклів.
Я здогадуюсь, що тільки алгоритми вищого рівня повинні думати про те, що тепер у нас є алгоритми нижчого рівня, на яких можна будувати.