cpp_lib | Unsorted

Telegram-канал cpp_lib - Библиотека C/C++ разработчика

2630

Полезные материалы по всему, что может быть полезно плюсовику/сишнику.

Subscribe to a channel

Библиотека C/C++ разработчика

❓ Знали, что разработчики на С++ тоже могут эффективно автоматизировать инфраструктуру с помощью Terraform и GitLab?

⏰ 3 апреля в 20:00 мск на открытом уроке Вячеслав Федосеев объяснит, как разработчикам на С++ настроить CI/CD-пайплайны, управлять конфигурациями и легко разграничивать окружения.

Вячеслав — эксперт в IT с 2006 года, прошёл путь от первых Linux-серверов до масштабных DevOps-решений. Автор и ментор курсов по CI/CD и DevOps-практикам.

Если вы С++ разработчик, хотите упростить инфраструктуру ваших проектов и ускорить процессы — урок точно для вас. Освойте актуальные практики IaC и получите навыки, которые повысят вашу востребованность.

🎁 Участникам вебинара дарим скидку на полный курс по CI/CD на основе GitLab.

👉 Для участия зарегистрируйтесь

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Библиотека C/C++ разработчика

Как работает профилирование
Виктор Шампаров

Профилировщики — важная часть тулинга, которая помогает программистам или компиляторам делать код быстрее.

Известны два подхода к профилированию: инструментирование и сэмплирование. В докладе кратко рассмотрели инструментирование на примере PGO, а на примере perf и иных подобных профилировщиков — сэмплирование. Также обсудили аппаратную поддержку профилирования в некоторых процессорах.

источник

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

В C++23 std::stacktrace упрощает вывод стека вызовов, избавляя от необходимости использовать платформозависимые API и снижая дублирование работы между различными платформами.

https://en.cppreference.com/w/cpp/utility/basic_stacktrace

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Подборка Telegram каналов для программистов

/channel/bash_srv Bash Советы
/channel/win_sysadmin Системный Администратор Windows
/channel/lifeproger Жизнь программиста. Авторский канал.
/channel/devopslib Библиотека девопса | DevOps, SRE, Sysadmin
/channel/rabota1C_rus Вакансии для программистов 1С

Системное администрирование 📌
/channel/sysadmin_girl Девочка Сисадмин
/channel/srv_admin_linux Админские угодья
/channel/linux_srv Типичный Сисадмин

/channel/linux_odmin Linux: Системный администратор
/channel/devops_star DevOps Star (Звезда Девопса)
/channel/i_linux Системный администратор
/channel/linuxchmod Linux
/channel/sys_adminos Системный Администратор
/channel/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
/channel/sysadminof Книги для админов, полезные материалы
/channel/i_odmin Все для системного администратора
/channel/i_odmin_book Библиотека Системного Администратора
/channel/i_odmin_chat Чат системных администраторов
/channel/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
/channel/sysadminoff Новости Линукс Linux

1C разработка 📌
/channel/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
/channel/DevLab1C 1С:Предприятие 8

Программирование C++📌
/channel/cpp_lib Библиотека C/C++ разработчика
/channel/cpp_knigi Книги для программистов C/C++
/channel/cpp_geek Учим C/C++ на примерах

Программирование Python 📌
/channel/pythonofff Python академия. Учи Python быстро и легко🐍
/channel/BookPython Библиотека Python разработчика
/channel/python_real Python подборки на русском и английском
/channel/python_360 Книги по Python Rus

Java разработка 📌
/channel/BookJava Библиотека Java разработчика
/channel/java_360 Книги по Java Rus
/channel/java_geek Учим Java на примерах

GitHub Сообщество 📌
/channel/Githublib Интересное из GitHub

Базы данных (Data Base) 📌
/channel/database_info Все про базы данных

Мобильная разработка: iOS, Android 📌
/channel/developer_mobila Мобильная разработка
/channel/kotlin_lib Подборки полезного материала по Kotlin

Фронтенд разработка 📌
/channel/frontend_1 Подборки для frontend разработчиков
/channel/frontend_sovet Frontend советы, примеры и практика!
/channel/React_lib Подборки по React js и все что с ним связано

Разработка игр 📌
/channel/game_devv Все о разработке игр

Библиотеки 📌
/channel/book_for_dev Книги для программистов Rus
/channel/programmist_of Книги по программированию
/channel/proglb Библиотека программиста
/channel/bfbook Книги для программистов
/channel/books_reserv Книги для программистов

БигДата, машинное обучение 📌
/channel/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning

Программирование 📌
/channel/bookflow Лекции, видеоуроки, доклады с IT конференций
/channel/coddy_academy Полезные советы по программированию
/channel/rust_lib Полезный контент по программированию на Rust
/channel/golang_lib Библиотека Go (Golang) разработчика
/channel/itmozg Программисты, дизайнеры, новости из мира IT
/channel/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻
/channel/nodejs_lib Подборки по Node js и все что с ним связано
/channel/ruby_lib Библиотека Ruby программиста

QA, тестирование 📌
/channel/testlab_qa Библиотека тестировщика

Шутки программистов 📌
/channel/itumor Шутки программистов

Защита, взлом, безопасность 📌
/channel/thehaking Канал о кибербезопасности
/channel/xakep_2 Хакер Free

Книги, статьи для дизайнеров 📌
/channel/ux_web Статьи, книги для дизайнеров

Математика 📌
/channel/Pomatematike Канал по математике
/channel/phis_mat Обучающие видео, книги по Физике и Математике

Excel лайфхак📌
/channel/Excel_lifehack

/channel/tikon_1 Новости высоких технологий, науки и техники💡
/channel/mir_teh Мир технологий (Technology World)

Вакансии 📌
/channel/sysadmin_rabota Системный Администратор
/channel/progjob Вакансии в IT

Читать полностью…

Библиотека C/C++ разработчика

Магия ИИ в разработке приложений на Qt – попробуйте сами!

ИИ – это не просто тренд, а мощный инструмент, который может упростить разработку, автоматизировать рутину и даже помогать создавать ассеты для приложений. Хотите узнать, как это работает на Qt?

📅 3 апреля в 20:00 (мск) приглашаем на открытый вебинар, на котором разберёмся, как LLM-модели могут:

✅ Упрощать работу с Qt, автоматизируя рутинные задачи
✅ Помогать писать тесты при помощи QtTest
✅ Создавать ассеты и взаимодействовать с кодом

🚀 Что получите?

✔️ Инструменты для работы с ИИ в Qt
✔️ Практический опыт использования LLM в разработке
✔️ Видение того, где и как ИИ может вам помочь

Присоединяйтесь и попробуйте магию ИИ в деле! 🧑‍💻🔥

👉 Регистрируйтесь по ссылке: https://vk.cc/cKhmuP

Бесплатное занятие приурочено к старту курса Разработка прикладного ПО на Qt и ОС «Аврора», обучение на котором позволит освоить кросс-платформенный фреймворк Qt.

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Библиотека C/C++ разработчика

🧵 STL Renderer — это простой рендерер STL-файлов, написанный с использованием C++, OpenGL и Dear ImGui.

🔹 Функции:
- Загрузка и визуализация STL-файлов (как ASCII, так и бинарных)
- Управление камерой: вращение, масштабирование, перемещение
- Интеграция с Dear ImGui для графического интерфейса

📦 Сборка:
Проект использует CMake и требует следующих зависимостей:
- OpenGL
- GLFW
- GLAD
- Dear ImGui

🚀 Отличный старт для тех, кто хочет разобраться, как визуализировать 3D-модели в формате STL с помощью OpenGL и создать минимальный интерфейс управления сценой.

https://github.com/SynrgStudio/STL-Renderer

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Основы С++

C++. Урок 1. Введение
C++. Урок 2. Обзор редактора
C++. Урок 3. Процедурный стиль программирования
C++. Урок 4. Динамическая память
C++. Урок 5. Отличия С и C++
C++. Урок 6. ООП. Инкапсуляция классов
С++. Урок 7. Наследование + статический полиморфизм
C++. Урок 8. Динамический полиморфизм
C++. Урок 9. Классификация полиморфизма
C++. Урок 10. Обработка исключений

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

👩‍💻 Тест по языку С

Проверь насколько хорошо ты знаешь Си !
Ответишь — пройдешь на продвинутый курс «Программист С» от OTUS по специальной цене.

Время прохождения теста ограничено 30 минут

➡️ ПРОЙТИ ТЕСТ

На курсе ты освоишь практические навыки программирования на С, научишься решать задачи уровня Middle+.

Курс доступен в рассрочку.
🎁 Скидки в честь Дня Рождения Otus и дополнительный промокод на скидку PROGC_5 (до 31.03)

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Библиотека C/C++ разработчика

⚡️Молниеносный оффер в Kaspersky

C++ Fast Track — онлайн-ивент, где можно получить оффер за пару дней.

Для участия: только резюме и присутствие на технической онлайн-встрече с командой. Удобный день и время подберёте вместе с рекрутером.

Кого ждём: С++ разработчики Junior+ / Middle / Middle+ / Senior (опыт от 3-х лет).

Как проходит тех. интервью:
- 2 часа (возможно, быстрее)
- 2 наших эксперта
- никакого leet code, cppreference — да.

Когда: 31 марта — 4 апреля

Подать заявку: https://kas.pr/9sm6?erid=2W5zFFy8z3r

Читать полностью…

Библиотека C/C++ разработчика

Шеф, всё пропало

Ошибки программистов C++ — это отдельный вид искусства, вроде бы простой язык, но стоит отвлечься на чашечку кофе, как компилятор начинает вываливать простыню ворнингов пополам с ошибками, и иногда это больше похоже на древнеегипетские письмена, чем на нормальный выхлоп. Вы наверное и сами не раз сталкивались с разыменованием nullptr или перепутали (= и ==) по недосмотру. Часто причиной ошибкой является лень или невнимательность, или усталость - не зря появились суеверия "не комитить в пятницу вечером", "не кодить в состоянии изменного сознания" или "избегать кода под кофейным угаром", ну это когда три-четыре кружечки кофе навернул и пошел нести добрый код направо и налево.

https://habr.com/ru/articles/848662/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

О том, как легкомысленное использование полиморфных аллокаторов может испортить вам жизнь

Вы хотите идти в ногу со временем и перевести ваш проект на полиморфные аллокаторы? Вас не могут отговорить от этого даже затраты на виртуальные вызовы? Тогда вы просто обязаны знать о нюансах с лайфтаймом, и почему нельзя просто взять и поменять свои контейнеры на аналоги из пространства имён pmr.

Давайте предположим для примера, что вы работаете в биологической лаборатории. Вам поставили задачу разработать приложение, которое позволяло бы симулировать жизненный цикл каких-нибудь бактерий. Соответственно, у вас в проекте есть класс, описывающий бактерию. При этом каждой бактерии принадлежит набор генов. Это могло бы выглядеть следующим образом:


class Bacteria
{
private:
using gene_type = TheGene;
using genes_container = std::vector<gene_type>;

private:
static genes_container RandomGenes();

public:
Bacteria() = default;
Bacteria(const Bacteria&) = default;
Bacteria(Bacteria&&) = default;
Bacteria& operator = (const Bacteria&) = default;
Bacteria& operator = (Bacteria&&) = default;
~Bacteria() = default;

public:
void MutateRandomGene();
Bacteria Clone() const;

/* something else ... */

private:
genes_container m_genes = RandomGenes();
};


https://habr.com/ru/companies/pvs-studio/articles/875922/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

❤️ Backend Talks от Яндекс 360
17 апреля, Москва, 19:00

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

В программе:

📌На пути к 9999: принципы и практики построения высоконагруженных сервисов — Игорь Обручев, руководитель группы SRE

📌Эволюция проектирования общих решений в Яндекс 360 — Евгений Ширанков, руководитель команды платформенных сервисов

📌Ценности и культура команды. Почему они важны и как их сохранить в период роста — Роман Акинфеев, руководитель бэкенд-разработки Яндекс 360

Команда Яндекс 360 работает с нагрузками >1 000 000+ RPS и создает продукты которыми пользуются 95+ млн человек каждый месяц — Диск, Почта, Телемост, Мессенджер и другие.

🍻Приходите на митап обсуждать инженерные практики, качественно нетворкаться с разработчиками и классно провести время!

Регистрируйтесь

Читать полностью…

Библиотека C/C++ разработчика

#вакансия #удалённо #parttime #remote #parttime #C++ #преподаватель

🦉  OTUS ищет преподавателей на онлайн-курс: С++ Developer Professional

Мы расширяем команду экспертов (уже более 600 человек). Преподавательский опыт не обязателен — мы научим вас всему, что нужно!

Требуется:
- Опыт коммерческой разработки на C++ от 3 лет. Опыт многопоточного и асинхронного программирования.

Обязанности:
- подготовиться к занятиям (темы на выбор, материалы предоставляются)
- преподавать в mts-link.ru, уделяя большое внимание практике. Здесь вы сможете развивать навыки публичных выступлений, работы с аудиторией и подачи обратной связи.

Условия:
✅ гибкий график, легко совмещать с основной работой, занятия в вечернее время;
✅  оплата от 4000 до 6000 руб. за 1,5 часа занятия;
✅ бонусы: доступ к нашим курсам, нетворкинг, развитие личного бренда, бесплатные воркшопы и конференции для наших преподавателей.

Обсудить подробнее: @candyfox24

Читать полностью…

Библиотека C/C++ разработчика

Хотите прокачать навыки DevOps и успешно вкатиться в IT? Начните с актуального инструмента!

GitLab CI/CD — один из ключевых инструментов для автоматизации разработки. Его используют в компаниях от стартапов до корпораций.

На курсе «CI/CD на основе GitLab» вы научитесь развертывать пайплайны, настраивать CI/CD-процессы и работать с Docker и Kubernetes.

🔗 Пройдите вступительное тестирование и получите скидку на обучение. Ваш путь в DevOps начинается здесь

https://vk.cc/cJQpYd

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Читать полностью…

Библиотека C/C++ разработчика

📌 Оптимизация кода: убираем лишние копирования в C++

Сегодня я покажу вам, как неочевидные копирования объектов могут замедлять ваш код и как этого избежать.

Проблема: Лишние копирования
Допустим, у нас есть функция, которая возвращает std::vector<int>:


std::vector<int> getVector() {
std::vector<int> v = {1, 2, 3, 4, 5};
return v; // Возвращаем объект
}

void process() {
std::vector<int> data = getVector(); // Возможное копирование
}

Раньше здесь действительно происходило копирование, но начиная с C++11 работает NRVO (Named Return Value Optimization) и перемещение (move).

Однако копирования могут появиться, если компилятор не сможет применить NRVO. Например:


std::vector<int> getVector(bool flag) {
if (flag) {
std::vector<int> v1 = {1, 2, 3, 4, 5};
return v1; // NRVO сработает
} else {
return {6, 7, 8, 9, 10}; // Но здесь объект создается временно и потом копируется!
}
}

🔧 Как исправить?
Используем std::move или std::optional:


std::vector<int> getVector(bool flag) {
std::vector<int> v1 = {1, 2, 3, 4, 5};
std::vector<int> v2 = {6, 7, 8, 9, 10};
return flag ? std::move(v1) : std::move(v2); // Гарантируем перемещение
}


Или используем std::optional (полезно, если отсутствие значения — валидный вариант):


std::optional<std::vector<int>> getVector(bool flag) {
if (!flag) return std::nullopt;
return std::vector<int>{1, 2, 3, 4, 5};
}


Вывод
🔹 Следите за копированием больших объектов.
🔹 Используйте std::move, если данные больше не нужны.
🔹 Проверяйте, оптимизирует ли компилятор ваш код с NRVO.

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Можно ли навсегда избавиться от утечек памяти из-за циклических ссылок?

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

При работе с памятью существует много типов ошибок, но единственные ошибки, которые до сих пор не имеют нормального способа решения, это утечки памяти из-за циклических ссылок, когда два или более объектов напрямую или косвенно ссылаются друг на друга, в результате чего доступная приложению оперативная память постепенно уменьшается, так как ее невозможно освободить автоматически.

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

Но мне кажется, что есть очень простой способ устранить циклические ссылки в программе, который можно реализовать практически в любом типизированном языке программирования, конечно, если при этом не использовать все разрешающее ключевое слово unsafe для Rust или оператор reinterpret_cast в случае С++.

https://habr.com/ru/users/rsashka/articles/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

📕Открытый урок о работе со звуком в микроконтроллерах для разработчиков, инженеров, любителей электроники, радиолюбителей и инженеров-схемотехников.

На открытом уроке 2 апреля в 20:00 мск мы погрузимся в работу со звуковой магией микроконтроллеров.

📗 В результате вы:
- Узнаете всё об основных правилах оцифровки сигналов, ЦАП и усилителе класса D;
- Поймете, как работают микроконтроллеры на примере ESP32: от интерфейса I2S до временных диаграмм и их применения;
- Научитесь на практике обработке звука, цифровой фильтрации, записи AAC или MP3 из памяти микроконтроллера и созданию простого mp3-плеера из ESP32 и sd-карточки.

Спикер Игорь Морозов — эксперт в сфере Embedded Development, 15+ лет в разработке и управлении IT-проектами, технический директор стартапа по созданию робототехнических устройств с элементами машинного зрения.

👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие: https://vk.cc/cKoeK2

📙 Все участники открытого урока получат скидку на курс "Embedded Developer"

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Библиотека C/C++ разработчика

Почему игродев остается на С++17

Последние пару-тройку лет на конференциях все чаще я слышу жалобы знакомых в игрострое о том, что текущий вектор развития "современного C++" не соответствует потребностям игровой разработки. Реальные полезные нововведения фактически закончились с выходом C++17, а попытки внедрить C++20 часто заканчиваются обнаружением множества "гейзенбагов" и существенным снижением производительности - критичные для нас на 10-15% от сборки к сборке. Пошатавшись по разным игровым студиям, блин, скоро будет 15 лет как я тут, у меня таки немножечко есть, что вам рассказать.

Все современные студии, что крупнее двух с половиной землекопов, пишущие игры на плюсах, шарпе или чем-то близком - используют Visual Studio или переходят со своих поделок на Unreal/Unity, который так-то тоже плюсы, хоть и со странностями. Так исторически сложилось, что винда и майки были, есть и в ближайшем будущем горизонта лет десяти останутся самым крупным рынком ПК-консольных игр, а сами консоли давно стали "ну совсем ПК", но чтобы не терять эксклюзивы (и шекели) вендоры в этом не признаются никогда.

Мобилки, как-бы отдельно, и там свои свои покемоны Mac с Android, но в Visual Studio в том или ином виде создаются, дебажатся и оптимайзятся 95% игр, остальное - погрешность. С момента начала золотой эры игростроя (где-то в конце 90-х), большинство игр писались с учетом того, что они будут выпущены на ПК, под ПК понимается - под винду. И наследие многих A+-студий так или иначе связано с Microsoft, даже для не-Microsoft консолей и мобилок.

https://habr.com/ru/articles/894736/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Безопасная работа с массивами? Нет, не слышали

Рано или поздно любому разработчику на С-подобном языке приходит в голову идея использовать двумерный массив как одномерный. Причины для этого всегда разные, а вот результат чаще всего один. В этой небольшой заметке разберём эту сомнительную технику и какие проблемы она может привнести в вашу программу.

https://habr.com/ru/companies/pvs-studio/articles/895208/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Сортировка слиянием на CUDA

Я решил изучить, как повысится производительность алгоритмов сортировки при их реализации на CUDA. Моя цель — понять, как можно использовать мощь параллельных вычислений для ускорения алгоритмов сортировки.

В качестве тестового я возьму алгоритм сортировки слиянием (merge sort), потому что он удобно разбивает задачу на меньшие подзадачи с двумя равными половинами, что хорошо подходит для параллельных вычислений.

https://ashwanirathee.com/blog/2025/sort2/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

❓Хотите стать C#-разработчиком, но боитесь, что будет сложно?

Подготовьтесь заранее и освойте Git — ключевой инструмент командной разработки!

На открытом вебинаре 31 марта в 20:00 мск разберем:

◽️ Систему контроля версий

◽️ Основные команды

◽️ Принципы работы с репозиториями

◽️ Эти знания помогут вам уверенно работать в команде и подготовиться к следующему этапу.

С Git вы сможете эффективно управлять кодом, вести проекты и двигаться к позиции Junior и Middle.

🔗 Регистрируйтесь на вебинар и 🎁 получите скидку на большое обучение «C# Developer»: https://vk.cc/cKgE7g

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Библиотека C/C++ разработчика

Алгоритмы на С/С++

Задача о Ханойской башне
Быстрая сортировка (quick sort)
Бинарный поиск в отсортированном массиве
Сортировка методом выбора
Сортировка методом пузырька
Минимизация просмотров в методе сортировки пузырьком
Модифицированный метод пузырька
Сортировка методом вставок
Шейкер - сортировка

источник

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

👨‍💻 Если вы хотите основательно изучить C++, ресурс LearnCpp — один из лучших бесплатных онлайн-курсов по современному C++.

Сайт охватывает:

- Основы языка (переменные, типы данных, управление потоком, функции)
- Указатели, ссылки и динамическое выделение памяти
- Работа с массивами, строками и контейнерами STL
- ООП: классы, наследование, полиморфизм, инкапсуляция
- Современные фичи C++11/14/17/20: smart pointers, lambdas, auto, ranged for, structured bindings
- Обработка исключений
- Пространства имён, шаблоны, перегрузка операторов
- Управление ресурсами (RAII)
- Работа с файлами
- Продвинутые темы: многопоточность, move-семантика, constexpr и др.

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

📚 Отличный выбор для как новичков, так и опытных разработчиков, желающих освежить знания по современному C++.

https://www.learncpp.com/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Как написать 2D игру на C++ и чистом STL для терминала в Linux

Привет, Хабр, я PHP разработчик с опытом работы в продакшне более 8 лет. После долгого и упорного труда мне стало скучно пилить микросервисы и бэкенды в хайлоде, я решил постичь магию разработки игр. Выбрал курс по Unreal Engine 5 и C++, так как там все структурировано, понятно, и в случае необходимости есть кому задать вопрос. На первой лекции по основам С++ преподаватель сразу предложил челлендж - написать 2D игру без использования игрового движка. Идея мне понравилась и я сразу приступил к реализации.

https://habr.com/ru/post/708486/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

⚡️Асинхронность без сложных потоков? В C++20 это возможно. Корутины позволяют выполнять задачи параллельно без создания лишних потоков, экономя ресурсы и упрощая код.

На открытом вебинаре 27 марта в 20:00 мск разберём, как co_await и co_yield работают в современных C++-проектах, где применяются в реальных задачах и почему это важно для высоконагруженных систем. Разберём практические примеры из сетевого программирования и обработки данных.

Освойте новую парадигму асинхронности, избавьтесь от проблем с потоками и сделайте свой код проще и быстрее. Вы научитесь внедрять корутины в свои проекты, разберётесь в новшествах C++20/23 и сможете использовать их в продакшене.

👉Регистрируйтесь и получите скидку на большое обучение «C++ Developer. Professional»: https://vk.cc/cK8je9

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Библиотека C/C++ разработчика

Три теоремы о сортировках

Я знаю многих программистов и руководителей в IT компаниях, которые недолюбливают математиков и в частности считают их далёкими от жизни идиотами из-за их утверждений в духе "нельзя отсортировать последовательность быстрее, чем за nlogn" -- ведь это очевидным образом неверно, есть же сортировка подсчетом и radix sort.

Нюанс в том, что описанное выше -- это распространённая некорректная трактовка одной из ключевых теорем об алгоритмах сортировок, корректное утверждение выглядит так: "не существует алгоритма, который бы гарантированно находил перестановку n элементов, приводящую к возрастающему порядку, быстрее чем за nlogn используя только операции попарного сравнения". В этом утверждении больше слов, оно более сложно в плане когнитивного восприятия, ключевой момент обозначил жирным шрифтом, чувствуете разницу?

https://habr.com/ru/hubs/cpp/articles/

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Лекции С++ продвинутый поток ФПМИ 2023-24

Лекция 1. Введение в язык C++. Основные типы и операции над ними
Лекция 2. Основные команды в терминале. Компиляция программ
Лекция 3. Объявления и определения, области видимости, пространства имен
Лекция 4. Выражения и операторы. Управляющие конструкции
Лекция 5. Compile-time errors, runtime errors, undefined behavior
Лекция 6. Указатели
Лекция 7. Стековая, статическая и динамическая память
Лекция 8. Массивы, функции и указатели на функции

источник

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Время разобраться с std::chrono

Видео о std::chrono, в котором представлен обзор функциональности, добавленной в C++11, C++17 и C++20. Посмотрите, чтобы узнать, какую часть chrono поддерживает ваш компилятор. Мы были очень удивлены тем, что обнаружили.

источник

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Базовый курс C++ (MIPT, ILab)

Lecture 1. Scent of C++.
Lecture 2. Указатели и ссылки
Lecture 3. Имена и сущности
Lecture 4. Инициализация и копирование.
Lecture 5. RAII и перемещение
Lecture 6. Приведение типов
Lecture 7. Перегрузка операторов
Lecture 8. Наследование и полиморфизм
Lecture 9. Множественное наследование
Lecture 10. Языки и грамматики

источник

#cpp #programming

👉 @cpp_lib

Читать полностью…

Библиотека C/C++ разработчика

Пишем калькулятор на C++ с SFML

Привет, коллеги и доброжелательные критики! Сегодня я решил отвлечься от своей громоздкой работы, чтобы написать что-то простое, но с изюминкой — калькулятор с графическим интерфейсом на C++20 и SFML. Этот проект — не претензия на что-то грандиозное, а скорее лёгкий эксперимент, чтобы вспомнить, как приятно писать код, который сразу видно на экране. Заодно я поделюсь с вами своими мыслями, подходами и парой советов. Давайте разберём, как я это закрутил и почему выбрал именно SFML.

https://habr.com/ru/articles/891354/

#cpp #programming

👉 @cpp_lib

Читать полностью…
Subscribe to a channel