7358
Полезные материалы по всему, что может быть полезно плюсовику/сишнику. По всем вопросам @evgenycarter
Курс современного C++ | Боннский университет, Германия.
Course Introduction and Hello World
Variables, Basic Types, Control Structures
Compilation, Debugging, Functions, Header/Source, Libraries, CMake
Google Test, Namespaces, Classes
Move Semantics, Classes
Polymorphism, I/O, Stringstreams, CMake find
Static, Numbers, Arrays, Non-owning pointers, Classes
Pointers, const with pointers, Stack and Heap, Memory leaks
Smart/Unique/Shared ptrs, Associative con., Enumeration
Templates, Iterators, Exceptions, Program input parameters, OpenCV
источник
Мы в 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
Dangerous Dave
Серия видеороликов, показывающих начинающим программистам, как воссоздать Dangerous Dave с помощью C и SDL (2 часа)
источник
Мы в MAX
#cpp #programming
👉 @cpp_lib
InputParser — это библиотека на C++ для парсинга командной строки, разработанная Джан Луисом Боливаром Дианой. Она позволяет легко добавлять и обрабатывать опции командной строки в приложениях на C++. Для использования необходимо создать объект Parser, добавить необходимые опции с помощью метода addOption, а затем вызвать метод parse для обработки аргументов. Библиотека требует компилятора с поддержкой стандарта C++23 и распространяется по лицензии MIT.
https://github.com/gianluisdiana/InputParser
Мы в MAX
#cpp #programming
👉 @cpp_lib
Практика применения C++ в играх и игровых движках
Пожалуй, игры известны тем, что они всегда на переднем краю как современного железа, так и программных возможностей. Как же обстоят дела с C++ в этой области?
На примере трех сравнительно легких для восприятия сюжетов посмотрим, как так складывается, что стиль имеет тенденцию к C99 с классами. Сюжеты: взаимодействие с другими языками (interop w/scripts), многоплатформенность (compiler zoo, determinism, float) и многопоточность (pthread into OOP vs DOD, ECS, etc.)
источник
Мы в MAX
#cpp #programming
👉 @cpp_lib
🐦 Flappy Bird на Си: Вес APK < 100 Килобайт! 🚀
В сентябре 2024 года, увидев Flappy Bird на C# в дискорд-канале Raylib, я решил попробовать реализовать эту игру на Си для Android с весом APK менее 100 КБ. 🚀
Идея казалась безумной, но спортивный интерес взял верх. 💪
https://github.com/VadimBoev/FlappyBird
Мы в MAX
#cpp #programming
👉 @cpp_lib
Уже 23 октября узнаем больше о хакрдкорной разработке dev-to-dev решений
Техплатформа Городских сервисов Яндекса проводит митап, на котором эксперты поделятся опытом создания архитектуры нагруженной системы, обрабатывающей сотни тысяч rps в брокере сообщений на MongoDB, и как писать IO-bound сервисы под высокими нагрузками на С++ так же как на Go.
В программе выступления Антона Полухина, Ромы Елизарова, Лёши Иванова и Влада Назарова, а также нетворкинг в неформальной атмосфере.
Если интересуетесь разработкой dev-to-dev решений и вы опытный разработчик, обязательно приходите.
👉 23 октября, сбор гостей с 18:00
👉 Москва, офлайн
Регистрируйтесь и зовите коллег!
Мероприятие бесплатное. Количество мест ограничено — пожалуйста, дождитесь нашего подтверждения.
Реклама. ООО «Яндекс.Такси» ИНН 7704340310
Хотите собрать свой мини-Google? 🚀
🗓 22 октября, 20:00 приглашаем на открытый урок OTUS «Мини-поисковик своими руками». На этом вебинаре вы создадите поисковик с нуля — без готовых библиотек и магии. Только алгоритмы и код.
Разберём, как:
• объединить КМП и префиксное дерево;
• реализовать автодополнение и подсчёт вхождений;
• оптимизировать поиск под большие тексты;
• превратить всё это в маленький, но работающий офлайн-поисковик.
После вебинара вы сможете самостоятельно:
— строить индекс слов и быстро искать по нему;
— собирать статистику запросов;
— понять, как внутри устроены поисковики.
Открытый урок проходит в преддверие старта курса «Алгоритмы и структуры данных». Все участники получат скидку на обучение.
Присоединяйтесь 22 октября в 20:00:
https://vk.cc/cQoByu
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Контракты для С++
Тимур Думлер
Контрактное программирование — эффективный подход к написанию более безопасных и корректных программ. Он был успешно реализован в таких языках программирования, как Eiffel и Ada. В стандарте С++ контрактное программирование имеет долгую и сложную историю.
С тех пор как попытка добавить контракты в стандарт C++20 потерпела неудачу, SG21 — рабочая группа для стандартизации контрактов в комитете C++ — активно разрабатывает новую версию этой фичи. Сегодня эта версия контрактов уже практически полнофункциональна и с большой вероятностью будет включена в следующий стандарт C++26.
В этом докладе мы рассмотрели текущий дизайн контрактов для C++26. Обсудили разновидности контрактов (preconditions, postconditions, assertions), возможные режимы проверки, обработку нарушений и многое другое. Рассмотрели, чем текущий дизайн превосходит существующие реализации на макросах и как помогает повысить безопасность и корректность кодовой базы.
источник
Мы в MAX
#cpp #programming
👉 @cpp_lib
Алгоритмы на С/С++
Задача о Ханойской башне
Быстрая сортировка (quick sort)
Бинарный поиск в отсортированном массиве
Сортировка методом выбора
Сортировка методом пузырька
Минимизация просмотров в методе сортировки пузырьком
Модифицированный метод пузырька
Сортировка методом вставок
Шейкер - сортировка
источник
Мы в MAX
#cpp #programming
👉 @cpp_lib
Практика языка C.
Константин Владимиров.
На этом занятии мы завершим первый семестр знакомства с основами языка C и разберём многомодульные программы и структуры данных.
00:00 Хеш-таблицы.
15:10 Алгоритм Рабина-Карпа.
22:30 Range-based queries и снова о деревьях.
29:42 Многомодульные программы.
36:30 Структуры данных.
42:40 Литература и задачи.
44:45 Демонстрация многомодульных программ.
источник
Мы в MAX
#cpp #programming
👉 @cpp_lib
🔥 Qt остаётся одним из самых востребованных инструментов для создания кросс-платформенных приложений. Хотите научиться писать программы, которые действительно работают и востребованы в бизнесе?
Приглашаем на бесплатный открытый урок «Пишем приложение органайзер на Qt»
🗓 6 октября, в 20:00 мск.
🆓 Бесплатно. Урок в рамках старта курса «Разработка прикладного ПО на Qt и ОС «Аврора»».
Регистрация: https://vk.cc/cQ0xna
✔️ Разберем процесс создания приложения-органайзера с нуля, используя популярный фреймворк Qt.
✔️ Вы узнаете, как разрабатывать пользовательский интерфейс с помощью основных инструментов Qt.
✔️ В ходе занятия вы получите практические навыки работы с сигналами и слотами, проектированием архитектуры приложения, подбором структуры данных и т.д..
🔗 Ссылка на регистрацию: https://vk.cc/cQ0xna
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Пишем игру для NES на C
Всем привет. Я Даг. Добро пожаловать в мой учебник - Как запрограммировать игру NES на C. Вы можете сделать оригинальную игру Nintendo, которая будет играть на настоящей консоли NES (или эмуляторе).
Давайте поговорим о NES.
Выпущена в Японии (Famicom) в 1983 году, в США — в 1985 году.
Процессор — Ricoh 2A03, 1.79 МГц, клон 6502 (без десятичного режима) со звуковой схемой. Чип 6502 был очень популярен в то время и использовался, например, в Apple II и Atari 2600.
https://nesdoug.com/
Мы в MAX
#cpp #programming
👉 @cpp_lib
Оптимизация языковой модели Mamba для выполнения на CPU
Большие языковые модели с успехом применяются в биоинформатике. Неудивительно, ведь язык биологических последовательностей – всего лишь часть множества знаковых систем, существующих в природе. Но есть нюанс: осмысленные фразы языка биоинформатики, как правило, гораздо длиннее фраз языков межчеловеческого общения. Популярные языковые модели на основе трансформеров требуют квадратичного увеличения объема вычислений с ростом длины входной последовательности.
https://habr.com/ru/articles/925460/
Мы в MAX
#cpp #programming
👉 @cpp_lib
QML и Widgets в одном проекте: решение без костылей
Разработка приложения для настольных или встраиваемых платформ часто упирается в выбор между Qt Widgets и Qt Quick для создания интерфейса. У каждого подхода свои плюсы и минусы. Qt как гибкий фреймворк позволяет комбинировать их разными способами, а выбор способа интеграции этих API зависит от того, чего вы хотите добиться. В этой статье я покажу, как отображать окна Qt Widgets в приложении, написанном преимущественно на Qt Quick.
https://www.kdab.com/display-widget-windows-in-qt-quick-applications/
Мы в MAX
#cpp #programming
👉 @cpp_lib
Простое руководство по атомарности в C++
Часто возникает путаница с тем, что же понимается в компьютерных науках под «атомарностью». Как правило, атомарность – это свойство процесса, означающее, что он совершается за один шаг или операцию. Но в языке C++ атомарность определяется гораздо более специфичным образом. На самом деле, при использовании std::atomic с классами и типами еще не гарантируется, что весь код будет подлинно атомарным. Хотя, атомарные типы и входят в состав языка C++, сами атомарные операции должны поддерживаться на уровне того аппаратного обеспечения, на котором работает программа. Эта статья – простое руководство, помогающее понять, что же представляет собой атомарность в C++.
https://blog.devgenius.io/a-simple-guide-to-atomics-in-c-670fc4842c8b
Мы в MAX
#cpp #programming
👉 @cpp_lib
🤝 Сидите на работе, пишете код и чувствуете, что застряли в рутине?
Ваши проекты скучны, а возможности ограничены? Хотите создавать крутые приложения для современной техники и работать с крупными государственными компаниями и бизнесом?
Представьте себе, что вы стали мастером в разработке на Qt и ОС «Аврора». Вы создаете интерфейсы для цифровой техники, мобильные приложения для госкомпаний и крупного бизнеса, а ваши навыки востребованы как никогда.
Присоединяйтесь к онлайн-курсу «Разработка прикладного ПО на Qt и ОС «Аврора» и сделайте этот прыжок в будущее!
Что вам даст этот курс:
- освоите Qt — одну из лучших кроссплатформенных библиотек для разработки UI на С++;
- изучите нативную разработку для Авроры 5.0;
- изучите структуру библиотеки Qt и научитесь писать программы на QML.
И многое другое!
👉Пройдите тест и присоединяйтесь к курсу: https://vk.cc/cQBjMM
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🎁 Хочешь $6,000+ зарплату? Вот что нужно знать о переходе в техлиды
ФАКТ: По данным опроса 200+ техлидов, 78% жалеют, что не имели наставника при переходе от разработчика к руководителю.
РЕЗУЛЬТАТ: Потеря 1-2 лет карьеры, стресс, разочарование в менеджменте.
РЕШЕНИЕ: Учиться на чужих ошибках, а не на своих.
Fresh IT — канал, где техлид с опытом в топовых компаниях (Сбер, МТС, Align) дает конкретные инструменты для роста:
✅ Чек-лист готовности — узнай за 3 минуты, готов ли ты к роли тимлида
✅ Реальные кейсы — как решать конфликты, мотивировать команду, говорить с бизнесом
✅ Архитектурные решения — проверенные подходы от проектов для миллионов пользователей
✅ IT-новости — только актуальные тренды, без информационного шума
🔥 БОНУСЫ ПРИ ПОДПИСКЕ:
🎁 Чек-лист самооценки по 12 ключевым компетенциям
🎁 Подборка книг "Грокаем" (алгоритмы, безопасность, CD) — стоимость ~10k₽
📊 Результат: Понимание пути от Senior Developer к Tech Lead с реальным ростом дохода и влияния.
👉 Подписывайся и получи бонусы 👈
Ненавижу, _____, C++ массивы
Или почему мне кажется, что про них нужно знать, но не нужно использовать.
Друзья, вы помните момент, когда впервые сунули указатель на первый элемент массива в оператор sizeof, и ваш код перестал работать так, как вы задумывали? Это, конечно, и близко не сравнится с эмоциями от засовывания пальцев в розетку, но...
https://habr.com/ru/companies/pvs-studio/articles/822911/
Мы в MAX
#cpp #programming
👉 @cpp_lib
🔥 Открытый урок «Разбираем приложение с уведомлением для ОС Аврора»
🗓 21 октября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса Разработка прикладного ПО на Qt и ОС «Аврора».
🎯 О чём поговорим:
✔️ Познакомимся с ключевыми деталями для нативной разработки под ОС Аврора 5.
✔️Узнаем Аврора SDK как главного помощника разработчика.
✔️ Разберём QML-приложения для ОС Аврора, которое отправляет графическое уведомление.
👥 Кому будет интересно:
- Для разработчиков и других IT-специалистов, которые разбираются в основах разработки графических приложений и хотят поближе познакомиться с QML и операционной системой Аврора
🔗 Ссылка на регистрацию: https://vk.cc/cQw4Rp
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Создание игры Крестики-нолики на языке C++
Мы в MAX
#cpp #programming
👉 @cpp_lib
В докладе «Delivering safe C++» Страуструп затронул проблемы имиджа и распространения C++
источник
Мы в MAX
#cpp #programming
👉 @cpp_lib
Сборка C++ проектов. CMAKE. Game Engine серии
0:00:00 - Введение
0:01:32 - Пишем мини игру. FightClub
0:17:03 - MSBUILD
0:19:20 - Собственный build скрипт
0:26:52 - Build системы. Теория
0:34:17 - CMAKE
1:28:00 - Автоматизация CMAKE команд
источник
Мы в MAX
#cpp #programming
👉 @cpp_lib
Коллекция библиотек и фреймворков для C++
Список удивительных фреймворков, библиотек, ресурсов и блестящих вещей на C++ (или C). Вдохновленный удивительными... вещами.
https://github.com/fffaraz/awesome-cpp
Мы в MAX
#cpp #programming
👉 @cpp_lib
☄️Как устроено автодополнение в поисковых системах?
🗓 8 октября в 20:00 МСК приглашаем на открытый урок OTUS «Как вырастить префиксное дерево». На вебинаре мы пошагово построим префиксное дерево (Trie) для слов из большого текста, добавим счётчики частот и реализуем автодополнение. Вы увидите, как по первым буквам мгновенно находятся все слова с этим префиксом и выводятся самые популярные варианты продолжений.
Урок будет полезен разработчикам, которые хотят глубже понимать работу алгоритмов и применять их для оптимизации поиска, обработки текста и построения быстрых интерфейсов.
Открытый урок проходит в преддверие старта курса «Алгоритмы и структуры данных». Все участники получат скидку на обучение.
👉Зарегистрируйтесь сейчас и узнайте, как вырастить своё первое Trie-дерево: https://vk.cc/cQ8KKM
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Компьютерное зрение на C++: пишем приложение для поиска объектов под Android
Меня зовут Кирилл Колодяжный, я пишу код на С++ для систем хранения данных в YADRO. Помимо основной работы, интересуюсь машинным обучением и его возможностями, в том числе на «плюсах». Недавно мне стало интересно разобраться, как развернуть модель компьютерного зрения на мобильном устройстве с операционной системой Android.
Я изучил доступные инструменты, чтобы понять, какие части приложения можно реализовать на С++, и написать само приложение для телефона. Ни в одном из материалов на подобную тему не описывают реализацию такого приложения от начала до конца, поэтому я собрал свой опыт в серию статей.
Расскажу, как реализовать обнаружение объектов в реальном времени с помощью камеры на мобильной платформе Android с использованием библиотек PyTorch и NCNN и моделей компьютерного зрения YOLOv5 и YOLOv4. Шаблон моего приложения пригодится тем, кто хочет проверить прототип функциональности для компьютерного зрения на С++, использующий OpenCV на Android, но не хочет глубоко погружаться в программирование под Android.
В первой части цикла мы:
• создадим проект в IDE Android Studio,
• реализуем сессию непрерывного захвата изображений камеры,
• преобразуем изображения в матрицу OpenCV, чтобы сделать дальнейшую работу удобной.
https://habr.com/ru/companies/yadro/articles/850786/
Мы в MAX
#cpp #programming
👉 @cpp_lib
Компьютерное зрение на С++: подключаем ML-библиотеки и обрабатываем результаты поиска объектов
Меня зовут Кирилл Колодяжный, я разрабатываю системы хранения данных в YADRO и изучаю нестандартные подходы к машинному обучению: создаю ML-проекты на С++.
Это вторая часть цикла о разработке приложения для обнаружения предметов на С++. В прошлом материале мы выяснили, как создать проект в IDE Android Studio, реализовать сессию непрерывного захвата и преобразовать изображение в матрицу OpenCV. Ссылку вы найдете в конце статьи.
В этой статье продолжим реализацию проекта и обсудим следующие шаги:
• Как подключить к проекту библиотеки машинного обучения PyTorch и NCNN.
• Как получить модели YOLOv5 и YOLOv4 для использования на мобильном устройстве.
• Как реализовать инференс моделей для обнаружения объектов.
• Как обработать результаты работы моделей YOLO, реализовав алгоритмы Non-Maximum-Suppression и Intersection-Over-Union.
В конце сравним производительность PyTorch и NCNN и решим, какой фреймворк подойдет для задачи лучше.
https://habr.com/ru/companies/yadro/articles/856110/
Мы в MAX
#cpp #programming
👉 @cpp_lib
486-го хватит всем
В конце технического интервью, если кандидат ответил на вопросы и справился с задачами, у нас есть время для свободных вопросов, которые можно задать команде или кому-то из интервьюеров. Эту практику я переносил из компании в компанию, и она всегда помогала разрядить обстановку или вывести человека на разговор, если он был напряжен во время общения. Вопросы могут быть любые, кроме личных или тех, что под NDA.
Обычно кандидаты задают технические вопросы по стеку, пайплайнам, иногда пытаются задать каверзные вопросы, особенно по плюсам, чтобы проверить нас. Иногда и мы не можем ответить на все из них. Вопросы в стиле Google — например, «почему таблетки круглые?» — тоже встречаются, но недавно на одном из интервью прозвучал вопрос, на который вроде все и знали ответ, но никто сразу не смог его дать. Вопрос звучал так: «Какие общие технологии и решения появились в процессорах с времён 486, которыми мы часто пользуемся?»
https://habr.com/ru/articles/856572/
Мы в MAX
#cpp #programming
👉 @cpp_lib
💻 Курс “Программист на C” от OTUS — набор в группу скоро закроется!
Погрузитесь в мощный язык системного программирования.
Почему стоит пройти вступительное тестирование и записаться на курс:
• Глубокое изучение: синтаксис C, архитектура процессоров, управление памятью, ассемблер
• Практика задач уровня Middle для реальных навыков
💡 Кому подходит:
• Разработчикам, желающим углубить знания в C
•Специалистам по интеграции C-библиотек
✅ Итоги курса:
• Создание оптимизированных приложений
• Понимание работы процессоров и памяти
• Навыки системного программирования
👉 Успейте записаться. Пройдите успешно тест и получите спеццену. Подробности уточняйте у менеджера. Места ограничены.
https://vk.cc/cPMh3n
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Проблема, о которой вы даже не подозревали: print(.1+.2)
Как следует отображать на экране результат деления 3.0 на 10.0 ? Сколько цифр следует вывести, если пользователь не указал точность?
Скорее всего, вы даже не знали, что вывод чисел с плавающей запятой — это сложная проблема, настолько сложная, что по ней написаны десятки научных статей, причём последний прорыв был относительно недавно, в 2016 году. На самом деле, это одна из самых сложных частей поддержки чисел с плавающей запятой в среде выполнения языка.
Давайте продолжим разговор о самой неоптимизированной в мире библиотеке эмуляции плавающей точки при помощи целочисленной арифметики.
https://habr.com/ru/amp/publications/948556/
Мы в MAX
#cpp #programming
👉 @cpp_lib