Когда начну готовить 5-ую статью - сделаю 2 варианта с оговоркой, что удаленные из 14-17 плюсов варианты работают на LeetCode. Получится что-то вроде старого и нового варианта. Спасибо, что нашли альтернативу.
На всякие начальные отборочные приходили отличники, которых отправляли из-за оценок, но соревнование не получается - потому что они до сих пор пишут обычные массивы на плюсах и пузырьковую сортировку рядышком, и то не каждый.
Потом люди идут на информационные технологии и их садят в лужу - лабораторные работы, в которых нужно делать поиск подпоследовательности или находить оптимальные пути решения - идею они понимают, а закодировать не могут.
Палка о двух концах в первой статье - писали, что новичкам это вообще все не нужно и они будут читать сххреференс.
Единственная тема, которую я хотел добавить, но не добавил - отрицатели, но если про нее прочтут, то скорее всего забудут через пару часов.
Тут можно дополнить про лямбда-функции, добавить еще функции less_equal(), greater_equal() и еще штук 6 разных, но они покрывают таким функционалом друг друга.
Можно дополнить рассказом про шаблоны - но там задачи, а шаблоны медленнее будут и больше весить. На литкоде обычно не больше 4-ех разных типов - если бы это были шахматы с 8-ью фигурами, то возможно, стоило бы задуматься о шаблонах - но тут задача и цель хитнуть 100%
в том то и прикол - на 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));
Увидел, уберу - скорее всего у меня выдавало UB, но просто ничего значимого для остановки программы не происходило, а загуглить мозгов у меня не хватило.
В варианте про multiset я использовал auto, но в яндекс.доках была подготовлена как раз полная расписанная функция и поменяв ее в одном месте - я не уследил за второй
Первое, да - опечатка Второй, да - делал скрины под другие контейнеры и в процессе просто один и тот же продублировал - причем в обоих неправильный Третий, аналогичная ситуация как со вторым
Все вроде исправил, можете читать дальше или еще раз проверить
Статью я под LeetCode писал, как там обрабатывать исключение в форме: std::cout <<exc.what() << '\n';. То есть я открыл рандомную задачу и проверял, как там ведут себя функции, если бы он возвращал vec.end(), то это легко обрабатывается, а std::cout - придется использовать streambuff и rdbuf - так можно делать, но неудобно и я так никогда не делал на литкоде.
Дополнил статью информацией о bind_front
Когда начну готовить 5-ую статью - сделаю 2 варианта с оговоркой, что удаленные из 14-17 плюсов варианты работают на LeetCode. Получится что-то вроде старого и нового варианта. Спасибо, что нашли альтернативу.
Это база, но кресты в сердце
На всякие начальные отборочные приходили отличники, которых отправляли из-за оценок, но соревнование не получается - потому что они до сих пор пишут обычные массивы на плюсах и пузырьковую сортировку рядышком, и то не каждый.
Потом люди идут на информационные технологии и их садят в лужу - лабораторные работы, в которых нужно делать поиск подпоследовательности или находить оптимальные пути решения - идею они понимают, а закодировать не могут.
Палка о двух концах в первой статье - писали, что новичкам это вообще все не нужно и они будут читать сххреференс.
Единственная тема, которую я хотел добавить, но не добавил - отрицатели, но если про нее прочтут, то скорее всего забудут через пару часов.
Тут можно дополнить про лямбда-функции, добавить еще функции less_equal(), greater_equal() и еще штук 6 разных, но они покрывают таким функционалом друг друга.
Можно дополнить рассказом про шаблоны - но там задачи, а шаблоны медленнее будут и больше весить. На литкоде обычно не больше 4-ех разных типов - если бы это были шахматы с 8-ью фигурами, то возможно, стоило бы задуматься о шаблонах - но тут задача и цель хитнуть 100%
в том то и прикол - на 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));
Да, вы правы сейчас уберу этот пассаж про QList
Увидел, уберу - скорее всего у меня выдавало UB, но просто ничего значимого для остановки программы не происходило, а загуглить мозгов у меня не хватило.
В варианте про multiset я использовал auto, но в яндекс.доках была подготовлена как раз полная расписанная функция и поменяв ее в одном месте - я не уследил за второй
Да, это хорошая идея
Первое, да - опечатка
Второй, да - делал скрины под другие контейнеры и в процессе просто один и тот же продублировал - причем в обоих неправильный
Третий, аналогичная ситуация как со вторым
Все вроде исправил, можете читать дальше или еще раз проверить
Статью я под LeetCode писал, как там обрабатывать исключение в форме:
std::cout <<
exc.what() << '\n';
. То есть я открыл рандомную задачу и проверял, как там ведут себя функции, если бы он возвращал vec.end(), то это легко обрабатывается, а std::cout - придется использовать streambuff и rdbuf - так можно делать, но неудобно и я так никогда не делал на литкоде.Я поменяю "Начиная диалог об ассоциативных контейнерах.
Мне безумно стыдно за "безумно быстрый доступ", и я сейчас дополню статью скоростями на вставку/удаление.
Да, сейчас исправлю, спасибо что прочитали - под объектами, я имел ввиду значения.
Эх, алгебра 1 курс, вспоминаю как через метод гаусса считали этот кошмар вещественночисленный