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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5bac324c8ba6dcaa1ad17
加入频道
⚡️Proglib запускает канал про ИИ-помощников

Будем максимально подробно рассказывать про все существующие нейросети-помощники, которые генерируют текст или код — с пошаговыми инструкциями, промтами, инструментами и лайфхаками.

⭐️ChatGPT
⭐️Gemini
⭐️Claude
⭐️Bing
И другие!

👉Подписывайтесь!
Please open Telegram to view this post
VIEW IN TELEGRAM
Какими площадками или соцсетями вы активно пользуетесь кроме телеграмма?
Anonymous Poll
16%
Instagram
3%
Facebook
33%
ВКонтакте
2%
VC.ru
39%
Хабр
11%
Reddit
78%
YouTube
14%
Другое...
🔮 Что такое std::unique_lock?

std::unique_lock — это класс из стандартной библиотеки, который предоставляет механизм блокировки мьютекса (mutex) для обеспечения безопасности при доступе к общим данным из нескольких потоков

У std::unique_lock есть альтернатива — это std::lock_guard. Их главное отличие в том, что std::unique_lock можно заблокировать и разблокировать, а std::lock_guard разблокируется только при уничтожении
😏 Зачем нужен виртуальный деструктор?

Виртуальные деструктор нужен только когда мы пользуемся наследованием. Он необходим в первую очередь, чтобы не было утечки памяти (memory leaks)

Если ключевое слово virtual к деструктору в предке, то и во всех потомках он тоже будет виртуальным

Если есть хотя бы одна виртуальная функция в классе, то деструктор тоже нужно сделать виртуальным
⛓️🗄️ Соединения в SQL. Часть 2. Сложные типы соединений

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

👉 Ссылка на статью
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом.

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
🔮 Статья об constexpr, consteval и constinit

Вышла небольшая обзорная статья о том, как constexpr, consteval, и constinit позволяют реализовывать компиляцию на этапе выполнения. Компиляция на этапе выполнения позволяет ускорить выполнение кода за счет выполнения расчетов на этапе компиляции, а не в рантайме

👉 Ссылка
🔬 20 лет в блогосфере: взгляд физика на эволюцию фундаментальной науки

Двадцать лет назад автор блога Not Even Wrong сделал свою первую запись. С тех пор многое изменилось в мире фундаментальной физики и в способах научной коммуникации. Какие уроки можно извлечь из этого опыта и чего ждать от будущего?

👉 Читать статью
👉 Зеркало
💡 В чем различия между delete и delete[]?

delete уничтожает объекты, которые были созданы при помощи new()

delete[] уничтожает объекты, которые были созданы при помощи new[](). Также будут вызваны деструкторы для всех элементов


‼️ Если операторы использовать не правильно, то будет undefined behavior😜
-35% на полугодовой курс по алгоритмам!

🌟 Алгоритмы и структуры данных🌟

23 390 рублей 35 990 рублей до 1 апреля

Курс для тех, кто хочет научиться работать с алгоритмами, подготовиться к собеседованию крупную IT-компанию и начать брать более сложные проекты.

🔥 Переходите и активируйте вводные занятия курсаhttps://proglib.io/w/5a72cc41

Вас ждут:

– 150 практических заданий и 47 видеолекций

– бессрочный доступ к обучению

– поддержка преподавателя в чате

А также очень харизматичный спикер из Яндекса 🙌🏻
🧨 Spinlock

Spinlock (спин-блокировка, циклическая-блокировка) — по своей сути просто бесконечный цикл с проверкой для выхода. Необходим для синхронизации доступа к общему ресурсу в многопоточных приложениях


Spinlock даёт максимальную нагрузку на CPU. Так как по задумке он выполняется очень ограниченное время, то это не заметно

Значительно дешевле mutex
🧑‍💻 Путь разработчика: один язык на всю жизнь или постоянное переобучение?

Мир IT постоянно развивается, и то, что было актуально вчера, сегодня может оказаться устаревшим. Мы хотим узнать, как часто разработчики меняют сферу деятельности и направление разработки в погоне за новыми знаниями и возможностями.

👉 Поделитесь своим мнением и опытом. Ваши ответы помогут нам лучше понять тенденции и предпочтения в сообществе разработчиков

Опрос займёт у вас примерно 4 минуты.
💡 Разбор кода игры Super Mario на языке C++

- Введение
- Шаг 1: Создание игрока
- Шаг 2: Создание платформера
- Шаг 3: Создание флажка
- Шаг 4: Поставить изображение frend
- Шаг 5: Добавления надписей для уровня
- Шаг 6: Добавления врагов
- Шаг 7: Добавление урона и возрождение игрока
- Шаг 8: Добавление меню
- Шаг 9: Добавление музыки и звуки
- Игра готова

👉 Ссылки на картинки и звуки
👉 Ссылка на код

👉 Ссылка на источник
🧨 Трюк с битовыми операциями

Значения двух переменных можно поменять местами без дополнительной переменной
с помощью битовой операции XOR (исключающее или)

Если к числу a применить XOR b два раза, то получим тоже самое число а. На этом и строится способ обмена переменными