Библиотека C/C++ разработчика | cpp, boost, qt
20.9K subscribers
1.57K photos
41 videos
16 files
3.74K links
Все самое полезное для плюсовика и сишника в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/d6cd2932

Наши каналы: https://yangx.top/proglibrary/9197

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
加入频道
Изменяемые лямбда-функции

Ключевое слово mutable используется для сохранения состояния в лямбда-функциях. Обычно оператор вызова функции замыкания является константным. Другими словами — лямбда не может модифицировать переменные, захваченные по значению.

Но ключевое слово mutable может быть применено ко всей лямбда-функции, что сделает все её переменные изменяемыми.

Следует заметить, что в отличии от mutable-переменных в объявлении класса, мутабельные лямбда-функции должны использоваться относительно редко и очень аккуратно. Сохранение состояния между вызовами лямбда-функции может быть опасным и контринтуитивным.
#код
Как два байта переслать: контрибьютим в KPHP

KPHP — компилятор для PHP. Он конвертирует PHP код в код на C++, компилируя который, ускоряет производительность в десятки раз. Это open-source проект, созданный ВКонтакте. Благодаря ему собирается огромный монолит ВКонтакте на 9 миллионов строк PHP кода в обычный бинарник, запуская который вы локально поднимаете полноценный ВКонтакте.

Читать статью
Генерируем пароли с помощью C++

Эта программа создает константы для допустимых символов в пароле и для длины пароля. Затем она инициализирует генератор случайных чисел и генерирует пять случайных паролей.

Каждый пароль формируется путем выбора случайного символа из всего набора символов. Этот процесс повторяется до достижения желаемой длины пароля.
#код
Очередной #дайджест по C++:

✍️ Joystick для ПК на базе Arduino
Автор делает еще один манипулятор для ПК,

✍️ Алгоритм быстрого поиска при помощи хэширования
В статье представлен алгоритм оптимизации хранения данных для быстрого поиска (на примере контейнера map).

✍️ Новый дом для Фараона (Pharaoh)
Любопытная статья про геймдизайн и не только.

✍️ Пишем виртуальную машину (интерпретатор) простого байткода + JIT компиляция
Как написать виртуальную машину С-подобного языка, которая сможет делать JIT-компиляцию байткода с помощью библиотеки libjit.

✍️ Монотонная кубическая интерполяция
В данной статье разобран алгоритм монотонной кубической интерполяции, предложенный Фритчем и Карлосоном в работе Monotone Piecewise Cubic Interpolation (1980).

✍️ Безопасность типов и ресурсов в современном C++

✍️ [sobjectizer] Несколько слов о релизе версии 5.8.0
SObjectizer — это относительно небольшой C++17 фреймворк, который позволяет использовать в С++ программах такие подходы, как Actor Model, Publish-Subscribe и Communicating Sequential Processes (CSP), что упрощает разработку сложных многопоточных приложений.
Какой ноутбук считаете наиболее подходящим для программирования и почему?
#интерактив
Подготовка к собеседованию в FAANG / Работа в FAANG
Проверить, найден ли элемент в массиве С++

В С++ вы должны использовать std::find и проверить, указывает ли результирующий указатель на конец диапазона.
#вопросы_с_собеседований
Разница в быстроте у постфиксных и префиксных инкрементных операторов

В постфиксных операторах производится дополнительная операция сохранения предыдущего состояния объекта, а затем только увеличение на 1, а в префиксном операторе после инкрементирования объекта, сразу возвращается ссылка объект. Префиксные операторы быстрее. Сигнатура их отличается фиктивным параметром int у постфиксного оператора.
#код
Как вывести форматированный текст на экран в C++

Рано или поздно у каждого программиста появляется желание вывести форматированный текст на экран. Немудрено, у пляшущих на экране буковок есть свой неповторимый шарм, а факт форматированности добавляет им еще и загадочности — мы можем даже не догадываться, что в точности будет напечатано. Но как сделать это оптимально и кроссплатформенно?

Читать статью
Сколько всего курсов по программированию вы купили?
#интерактив
memmove

Функция memmove используется для копирования блока памяти из одного места в другое. Она объявлена в заголовочном файле . Она принимает аргументы типа void * и const void *, что позволяет ей работать с любыми типами данных. Она просто копирует указанное количество байтов из исходного буфера в целевой.

memmove может обрабатывать перекрывающиеся буферы. В отличие от memcpy, которая просто копирует данные из одного места в другое, memmove может безопасно перемещать данные, даже если исходный и целевой буферы перекрываются.

Функция memmove может быть полезна для удаления элементов из массива. Например, если вы хотите удалить элемент из массива и сдвинуть оставшиеся элементы влево, вы можете использовать memmove для перемещения данных в массиве.
#код
Очередной #дайджест по C++:

✍️ C++23: статический оператор () и статический оператор []
В этой статье рассмотрели две новые функции C++23. Теперь язык позволяет оператору вызова (operator()) и оператору подписки (operator[]) быть статическими. Давайте перейдем к деталям.

✍️ Nubbing-списки в (consteval) C++
Как современный C++ справляется с, казалось бы, простой задачей: удалением повторяющихся элементов списка?

✍️ Введение в программирование на C++ для инженеров, обзор книги

✍️ CppCast: Безопасность, защищенность и современный C++, с Бьярном Страуструпом
Бьерн Страуструп присоединяется к Филу и Тимуру. Бьерн рассказывает о безопасности в C++ через профили, а также модули и концепции — и предвидит, что еще будет дальше.

✍️ Без CRT в 2023 году: советы и рекомендации
Любопытная статья от опытного программиста.
Курс «Алгоритмы и структуры данных» для разработчиков, которые хотят подготовиться к собеседованию в технологическую компанию или продвинуться по карьере.

🔹Подробная программа – https://proglib.io/w/acc674d9

▪️ бессрочный доступ

▪️ 47 видеолекций

▪️ 150 практических заданий

▪️ бессрочная поддержка в чате студентов

▪️развернутая обратная связь по всем домашним заданиям

Стоимость со скидкой 33% всего 24 190 рублей 🫶 Актуально до 31 июля.

НАЧАТЬ С ДЕМО-ДОСТУПА

Приходите, оставляйте заявку на пробную версию и знакомьтесь с самым харизматичным спикером – Степаном Мацкевичем. Он определенно получил приз зрительских симпатий от наших студентов🥰
Как вывести в консоль числа от 1 до 100 без рекурсии и циклов?

В этой программе используется концепция метапрограммирования шаблонов.
#код
Различие локальной переменной и поля класса с одинаковым именем

Указатель this может быть полезен в случае, когда локальная переменная в методе имеет то же самое имя, что и поле объекта:

void set(int x) { this->x = x; }

Здесь в методе set мы присваиваем полю класса x значение локальной переменной this. Чтобы различить поле класса x и локальную переменную с тем же именем, мы используем запись this->x при обращении к полю класса.
Кто еще не подписан на наш главный канал — очень рекомендуем!

В «Библиотеке программиста» вас ждут фундаментальные IT-темы, Git, рынок труда, главные новости и, конечно же, мемы😎

Вот вам топ недавних постов:
🔍про коммиты в ветках Git
🔍новость о создании сверхразумного ИИ
🔍подборка инфографик на фундаментальные темы
🔍дайджест нейросетей для разработки

👉Подписаться👈