Комментарии 13
Про адаптеры функций(bind1nd, bind2nd) поговорим в 5-ой статье
Давайте не забывать bind1st и bind2nd - deprecated in C++14 and removed in C++17
в том то и прикол - на LeetCode C++ без выбора, а тут написано литкодовские компиляторы, что плюсы 20-ые.
Он работает, но единственная идея которая у меня есть, что если в библиотеке задепрекейтили функции, то они подставляют ее аналог:template <class Operation, class T>
binder2nd<Operation> bind2nd (const Operation& op, const T& x)
{
return binder2nd<Operation>(op, typename Operation::second_argument_type(x));
}
Вот вам для теста:vector<int>vec = {10, 20, 30, 40, 50};
count_if(vec.begin(), vec.end(), bind2nd(less<int>(), 30));
В с++20 добавили bind_front
они депрекейтнуты не по приколу, а потому что бесполезны, зачем они нужны если есть лямбды? И зачем про них вообще что-то знать, если их больше нет?
Какая-то пробежка "галопом по европам". Такое ощущение, что статья написана только для игр с LeetCode. Может не ограничиваться только сайтами с задачками? Тему можно развить ...
Палка о двух концах в первой статье - писали, что новичкам это вообще все не нужно и они будут читать сххреференс.
Единственная тема, которую я хотел добавить, но не добавил - отрицатели, но если про нее прочтут, то скорее всего забудут через пару часов.
Тут можно дополнить про лямбда-функции, добавить еще функции less_equal(), greater_equal() и еще штук 6 разных, но они покрывают таким функционалом друг друга.
Можно дополнить рассказом про шаблоны - но там задачи, а шаблоны медленнее будут и больше весить. На литкоде обычно не больше 4-ех разных типов - если бы это были шахматы с 8-ью фигурами, то возможно, стоило бы задуматься о шаблонах - но тут задача и цель хитнуть 100%
На всякие начальные отборочные приходили отличники, которых отправляли из-за оценок, но соревнование не получается - потому что они до сих пор пишут обычные массивы на плюсах и пузырьковую сортировку рядышком, и то не каждый.
Потом люди идут на информационные технологии и их садят в лужу - лабораторные работы, в которых нужно делать поиск подпоследовательности или находить оптимальные пути решения - идею они понимают, а закодировать не могут.
Лично для меня базовым C/C++ набором для leetcode является python :)
Я не хочу воровать время, поэтому ненужную информацию зачеркиваю
Спойлер
Ненужную информацию можно спрятать под спойлер.
Базовый набор для решения задач на LeetCode/Codeforces, ч.4 Функциональные объекты C++