Библиотека C/C++ разработчика
الذهاب إلى القناة على Telegram
Полезные материалы по всему, что может быть полезно плюсовику/сишнику. По всем вопросам @evgenycarter
إظهار المزيد7 189
المشتركون
-824 ساعات
-117 أيام
-3130 أيام
أرشيف المشاركات
🧵 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
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib
👨💻Задачи точного покрытия — фундамент для многих алгоритмических подходов. Но пока теория лежит на полке, она мало что меняет в вашем инженерном мышлении
На открытом уроке мы разберем Dancing Links через практику: соберем пентамино на столе, представим фигуры в виде строк матрицы и разберемся, как работает поиск с возвратом. Когда алгоритм становится наглядным, вы начинаете понимать, что на самом деле происходит внутри.
Если вы хотите развивать алгоритмическое мышление, системно улучшать свои решения и уверенно чувствовать себя в задачах уровня middle+, такие разборы — обязательная часть роста.
📆 Встречаемся 22 декабря в 20:00 МСК в преддверие старта курса «Алгоритмы и структуры данных», регистрация открыта: https://vk.cc/cSslDR
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Алгоритмы на С/С++
Задача о Ханойской башне
Быстрая сортировка (quick sort)
Бинарный поиск в отсортированном массиве
Сортировка методом выбора
Сортировка методом пузырька
Минимизация просмотров в методе сортировки пузырьком
Модифицированный метод пузырька
Сортировка методом вставок
Шейкер - сортировка
источник
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib
+3
Если вы хотите основательно изучить 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/
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib
🎯 В C++ вызываемый объект — это намного больше, чем “функция”. За тридцать лет язык прошёл путь от простых указателей до мощных лямбда-выражений, которые лежат в основе современного параллелизма, асинхронности, алгоритмов и гибких архитектур.
На открытом уроке 18 декабря в 20:00 мск вы увидите эволюцию callable-подходов во всей широте: от function pointers и функторов до std::bind, std::function и современных лямбд. Разберёмся, что происходит «под капотом», как выбирать подходящий инструмент и почему именно лямбды стали стандартом промышленного C++.
Такой разбор особенно полезен тем, кто хочет писать более выразимый, модульный и безопасный код. Понимание callable-моделей даёт гибкость: проще проектировать API, реализовывать callback-механику, строить асинхронность, оптимизировать архитектуру приложения и мыслить “по-современному”.
⚡️Присоединяйтесь к открытому уроку в преддверие старта курса «C++ Developer» — получите базу, на которой строятся потоки исполнения, асинхронные модели и ключевые элементы современного C++20/23: https://vk.cc/cSn7e8
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Как написать 2D игру на C++ и чистом STL для терминала в Linux
Я PHP разработчик с опытом работы в продакшне более 8 лет. После долгого и упорного труда мне стало скучно пилить микросервисы и бэкенды в хайлоде, я решил постичь магию разработки игр. Выбрал курс по Unreal Engine 5 и C++, так как там все структурировано, понятно, и в случае необходимости есть кому задать вопрос. На первой лекции по основам С++ преподаватель сразу предложил челлендж - написать 2D игру без использования игрового движка. Идея мне понравилась и я сразу приступил к реализации.
https://habr.com/ru/post/708486/
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib
Три теоремы о сортировках
Я знаю многих программистов и руководителей в IT компаниях, которые недолюбливают математиков и в частности считают их далёкими от жизни идиотами из-за их утверждений в духе "нельзя отсортировать последовательность быстрее, чем за nlogn" -- ведь это очевидным образом неверно, есть же сортировка подсчетом и radix sort.
Нюанс в том, что описанное выше -- это распространённая некорректная трактовка одной из ключевых теорем об алгоритмах сортировок, корректное утверждение выглядит так: "не существует алгоритма, который бы гарантированно находил перестановку n элементов, приводящую к возрастающему порядку, быстрее чем за nlogn используя только операции попарного сравнения". В этом утверждении больше слов, оно более сложно в плане когнитивного восприятия, ключевой момент обозначил жирным шрифтом, чувствуете разницу?
https://habr.com/ru/hubs/cpp/articles/
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib
Лекции С++ продвинутый поток ФПМИ 2023-24
Лекция 1. Введение в язык C++. Основные типы и операции над ними
Лекция 2. Основные команды в терминале. Компиляция программ
Лекция 3. Объявления и определения, области видимости, пространства имен
Лекция 4. Выражения и операторы. Управляющие конструкции
Лекция 5. Compile-time errors, runtime errors, undefined behavior
Лекция 6. Указатели
Лекция 7. Стековая, статическая и динамическая память
Лекция 8. Массивы, функции и указатели на функции
источник
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib
15 декабря в Москве и онлайн пройдёт встреча РГ21 С++ для практикующих разработчиков и энтузиастов языка
Участников ждет разговор о будущем С++, свежие новости и ответы на вопросы о стандартизации языка.
В программе:
🔸 Новости со встречи международного Комитета по стандартизации языка C++. Антон Полухин, руководитель группы разработки общих компонентов в Техплатформе Городских сервисов Яндекса, разберёт прогресс в работе над С++26 с рефлексией, расскажет про контракты и комментарии к стандарту от России.
🔸 Ответы на вопросы о практическом участии в разработке. Обсудим, как российским разработчикам можно напрямую участвовать в развитии стандарта языка.
🔸 Неформальный нетворкинг. После основной программы обмениваемся мнениями и общаемся с коллегами.
Регистрация на встречу уже открыта.
Метапрограммирование
1. Введение в шаблоны
2. C++20: requires keyword
3. C++20: concepts
4. Operator spaceship
5. ADL и CRTP
6 (семинар). Typelist
7. Traits, Policy Based Design, Mixins
8. Полиморфизм
9 (семинар). Реализация std::function
10 (семинар). Реализация std::any без виртуальных функций
источник
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib
🧑🏻💻Асинхронность в C++ всегда была испытанием на зрелость. Потоки, мьютексы, коллбеки — и тысячи строк кода, чтобы просто дождаться результата. Но в C++20 всё изменилось: корутины убирают боль ручного управления потоками.
На открытом уроке разберём, как работает новая модель асинхронности в C++: без громоздких конструкций и перегрузок по CPU. Вы поймёте, как устроены корутины, где их применять и почему они стали стандартом в C++20 и C++23. На практике создадим корутины-генераторы и обсудим их преимущества перед классическими потоками.
Если вы уже чувствуете, что ваш C++ проект тонет в callback hell или не масштабируется под нагрузкой — этот вебинар поможет понять, как писать современный, чистый и асинхронный код.
🔥11 декабря в 20:00 МСК. Открытый урок проходит в преддверии старта курса «C++ Developer. Professional». Присоединяйтесь и узнайте, как сделать асинхронность естественной частью вашего кода: https://vk.cc/cS9XVO
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Базовый курс 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. Языки и грамматики
источник
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib
Метапрограммирование
1. Введение в шаблоны
2. C++20: requires keyword
3. C++20: concepts
4. Operator spaceship
5. ADL и CRTP
6 (семинар). Typelist
7. Traits, Policy Based Design, Mixins
8. Полиморфизм
9 (семинар). Реализация std::function
10 (семинар). Реализация std::any без виртуальных функций
источник
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib
👨💻Ошибки в памяти, утечки, неопределённое поведение — всё это неизбежная часть разработки на C++. Даже опытные инженеры порой тратят часы на поиск невидимых дефектов, которые ломают логику программы. Но есть инструменты, которые позволяют ловить такие баги ещё до того, как они попадут в прод.
На открытом уроке 9 декабря в 20:00 мск мы подробно разберём санитайзеры — инструменты, которые показывают, где и почему программа ведёт себя неправильно. Вы поймёте, как использовать их в реальных проектах, какие типы ошибок они находят и где проходят границы применимости.
Это полезно всем, кто пишет на C++. Санитайзеры — минимальный набор безопасности, который помогает не только отлавливать критические ошибки, но и формировать инженерную культуру «чистого» кода. Вы увидите, как всего одно включение инструмента даёт прозрачность, на которую обычно уходят недели отладки.
🚀Присоединяйтесь к открытому уроку в преддверие старта курса «C++ Developer»: https://vk.cc/cRZJeG
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Улучшенные версии STL-контейнеров из библиотеки Boost
Илья Мещерин
В любом учебном курсе по C++, даже начального уровня, обязательно изучают, как устроен
std::vector. Детали внутреннего устройства std::vector в подробностях продолжают изучать в вузах, спрашивать на собеседованиях, обсуждать на конференциях. То же самое происходит с контейнерами std::list, std::deque, std::map и std::unordered_map: про их реализацию и особенности внутреннего устройства можно говорить бесконечно долго, про них все еще делают доклады, снимают лекции и пишут статьи. И их продолжают использовать в продакшен-коде даже в самых крупных и известных компаниях.
При этом в библиотеке Boost давным-давно есть альтернативные версии контейнеров, которые выигрывают у стандартных по многим показателям. Однако об этих версиях почти никто не знает, о них почти нет лекций, статей и докладов. Пора положить этому конец и разобраться в том, как еще могут быть устроены контейнеры, помимо тех версий из STL, о которых и так все знают.
Спикер обсудил внутреннее устройство не таких уж стандартных контейнеров: stable_vector, devector, bimap, circular_buffer, а также интрузивных версий list, map, unordered_map и их разновидностей.
источник
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib🔥OS DevConf 25 powered by GigaChat — конференция про разработку системного ПО, ядра Linux и open source.
Один день, 500 участников, 30+ докладов, 3 трека — концентрат практического опыта, знаний и инструментов, готовых к внедрению сразу по возвращению в офис. И, конечно, мега-возможности для нетворкинга с коллегами и экспертами сообщества!
Что будем обсуждать?
-Инструменты и примеры отладки, виртуализации, оптимизации производительности
-Практический опыт оптимизации сетевых решений с DPDK
-Эффективные методы безопасной разработки ядра Linux
-Реальные кейсы создания драйверов на Rust
-Все про GPU, NPU, ASIC и как запускать AI на железе под Linux и не только. Как AI встраивается в современную разработку
-Современные подходы к разработке системного и embedded ПО
Участие бесплатное, но количество мест ограничено — зарегистрируйтесь прямо сейчас 💻
#реклама
О рекламодателе
Алгоритмы манипуляций с битами
В статье приведены алгоритмы обработки коротких битовых строк, обычно вмещающихся в машинное слово, в большей степени эти алгоритмы предназначены для обработки строк длины 32 или 64, но многие из них можно применять для SIMD инструкций или даже GPU.
https://habr.com/ru/articles/886182/
📲 Мы в MAX
#cpp #programming
👉 @cpp_lib
Все секреты и лайфхаки по работе со строками — на втором вебинаре по оптимизации игр от PVS-Studio ❤️
Приглашённые эксперты из gamedev-индустрии поделятся удачными (и не очень) историями развития собственных решений.
А ещё:
🔵 расскажут о пулах строк и способах экономии памяти;
🔵 разберут, как ускорить поиск подстроки в строке и почему одна реализация может быть быстрее другой.
Вас ждут доклады:
🔵 «String interning и все, все, все» от Сергея Кушниренко, Senior Software Engineer в команде Age of Empires 2 (студия Forgotten Empires);
🔵 «Векторизованный поиск подстроки в строке» от Дениса Ярошевского, Performance engineer, условно активный член C++ сообщества, один из разработчиков библиотеки для векторизации EVE;
🔵 «std::string – путешествие туда и обратно» от Андрея Карпова, сооснователя PVS-Studio и автора Telegram-канала «Бестиарий программирования».
🗓 4 декабря, 15:00
Присоединяйтесь по ССЫЛКЕ.
