Быстрый парсинг 8-битных целых чисел
Допустим, вам нужно быстро распарсить 8-битные целые числа (0, 1, 2, …, 254, 255) из строки ASCII/UTF-8. Задача взята из проекта simdzone под руководством Йероена Коеккоека (NLnet Labs). Дана строка и её длина: например, ’22’ и длина 2. Наивное решение на C может выглядеть так:int parse_uint8_naive(const char *str, size_t len, uint8_t *num) {
uint32_t n = 0;
for (size_t i = 0, r = len & 0x3; i < r; i++) {
uint8_t d = (uint8_t)(str[i] - '0');
if (d > 9)
return 0;
n = n * 10 + d;
}
*num = (uint8_t)n;
return n < 256 && len && len < 4;
}
https://habr.com/ru/articles/784102/
#cpp #programming
👉 @cpp_lib
Полное руководство по CMake. Часть третья: Тестирование и пакетирование
Данная статья повествует о тестировании и пакетировании программ при помощи CMake — гибкого и универсального набора утилит для разработки различных программных продуктов. Строго рекомендуется прочитать первую и вторую части руководства во избежание непонимания синтаксиса и принципа работы CMake.
PS
Статья недоступна на хабре, достали из архива, все ссылки ведут через веб архив. При желании можно ручками поправить.
https://telegra.ph/Polnoe-rukovodstvo-po-CMake-CHast-tretya-Testirovanie-i-paketirovanie-02-27
#cpp #programming
👉 @cpp_lib
Как углубить свои знания об архитектуре ПО всего за пару часов?
Прийти на бесплатный практический урок «Тактики работы с обнаруживаемостью в архитектуре программного обеспечения» от OTUS. На вебинаре разберём:
- что такое observability и почему это важно для бизнеса;
- как использовать инструменты мониторинга и алертинга для повышения обнаруживаемости;
- принципы и практические примеры использования USE и RED;
- четыре золотых сигнала, которые помогут оптимизировать работу с обнаруживаемостью.
Встречаемся 6 марта в 20:00 мск в рамках курса «Software Architect». Доступна рассрочка на обучение!
Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://vk.cc/cv0tdN
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Полное руководство по CMake. Часть первая: Синтаксис
CMake — это открытый и кросс-платформенный набор утилит, предназначенных для автоматизации тестирования, компиляции и создания пакетов проектов на C/C++. Написав однажды небольшой и понятный всем скрипт, Вы тем самым обеспечите одинаковую сборку Вашего проекта на любых платформах, где доступен CMake.
Язык CMake, будучи транслированным в нативный файл сборки (например, Makefile или Ninja), определяет процесс всего управления проектом. В Вашем распоряжении, с функциональной стороны, есть лишь команды, которые могут образовываться в довольно сложные конструкции. С них мы и начнём.
https://telegra.ph/Polnoe-rukovodstvo-po-CMake-CHast-pervaya-Sintaksis-02-27
PS
Статья недоступна на хабре, достали из архива, все ссылки ведут через веб архив. При желании можно ручками поправить.
#cpp #programming
👉 @cpp_lib
Базовые алгоритмы на графах
Обход графа в ширину (Поиск в ширину) aka BFS | Breadth First Search
Обход графа в глубину (Поиск в глубину) aka DFS | Depth First Search
Алгоритм Дейкстры
Алгоритм Флойда-Уоршелла
Алгоритм Прима
https://habr.com/ru/companies/timeweb/articles/751762/
#cpp #programming
👉 @cpp_lib
👩💻 Разработка на С++ в 2024 — как попасть в крутой проект и добиться успеха?
Освоить возможности новых стандартов вплоть до C++20 и прокачать свой код под руководством топовых экспертов из ведущих компаний на онлайн-курсе "C++ Developer. Professional" от OTUS.
Программа идеально подойдет для разработчиков C++ Junior или Middle, а также разработчиков на Java или Python, стремящихся расширить свои возможности.
На курсе вас ждут:
- живые вебинары с возможностью задать вопросы экспертам;
- много практики и сильные проекты для портфолио;
- поддержка профессионального комьюнити;
- рассрочка на выгодных условиях.
➡️ Пройдите бесплатный тест прямо сейчас и узнайте, готовы ли вы стать более востребованным специалистом: https://vk.cc/cuWZYqРеклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Так сколько на самом деле строк на C нужно, чтобы выполнить a + b в Python?
Сразу оговорюсь покрывать все сценарии для python по количеству строк я не собираюсь — слишком много вариантов, слишком лень. Но вот вопрос, сколько питону нужно строк, что бы сложить 2 числа? Будет ли разница, если сохранять эти числа в переменные или разницы нет?
https://habr.com/ru/articles/782034/
#cpp #programming
👉 @cpp_lib
👩💻 Пройди тест по C++ и проверь свои знания.
Ответишь — пройдешь на продвинутый курс "C++ Developer. Professional" от OTUS по специальной цене + получишь запись мастер-класса от преподавателя курса.
На этом курсе ты:
✔️ Научишься прикладному применению стандартов C++11 / C++14 / C++17.
✔️ Освоишь асинхронное и многопоточное программирование.
✔️ Получишь глубокое представление о шаблонной магии и паттернах проектирования.
➡️ ПРОЙТИ ТЕСТ: https://vk.cc/cuPBt4Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Modern-CPP-Programming
Этот открытый курс предназначен для тех, кто уже знаком с языком Си и объектно-ориентированным программированием, для достижения уровня владения программированием на C++. Курс охватывает основы программирования на C++ и переходит к продвинутой семантике и концепциям C++.
(C++11/14/17/20/23)
https://github.com/federico-busato/Modern-CPP-Programming
#cpp #programming
👉 @cpp_lib
⚡ C++ Clustering Library
Эта библиотека представляет собой высокоэффективную реализацию алгоритма кластеризации DBSCAN (Density-Based Spatial Clustering of Applications with Noise) (в дальнейшем будут добавлены другие алгоритмы) на C++. Разработанная для высокопроизводительных приложений, она эффективно обрабатывает большие массивы данных, что делает ее идеальной для машинного обучения, добычи данных и сложных задач анализа данных.
https://github.com/Lallapallooza/clustering
#cpp #programming
👉 @cpp_lib
Bad Apple на значках рабочего стола — работаем с WinAPI
Если что-то существует, на этом можно запустить Bad Apple
Правило 86
За последние лет 15, Bad Apple запустили множестве вещей - на самодельном RISC-V процессоре, на осциллографе, на яблоках. Попробуем запустить Bad Apple на значках рабочего стола с помощью вызовов API Windows и нескольких других.
https://habr.com/ru/articles/794536/
#cpp #programming
👉 @cpp_lib
😎Сишарпист, погрузись в мир встраиваемых систем — программируй микроконтроллеры!
👉Начните на бесплатном вебинаре продвинутого олайн-курса «Программист С» — «Встраиваемые системы и программирование микроконтроллеров»: регистрация
На вебинаре мы:
— проведем обзор различных микроконтроллеров и их характеристик
— рассмотрим проектирование встраиваемых систем от идеи до реализации
— разберем на конкретном примере программирование микроконтроллеров
— сделаем отладку и тестирование встраиваемых систем.
Вебинар будет полезен:
— разработчикам и инженерам, которые интересуются встраиваемыми системами и программированием микроконтроллеров.
🤝Понравится вебинар — продолжите обучение на курсе по специальной цене и даже в рассрочку!
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Путеводитель C++ программиста по неопределенному поведению
Все начинается просто и незатейливо: обычный десятиклассник увлекается программированием, знакомится с алгоритмическими задачками, решения которых должны быть быстрыми. Узнает о языке C++, учит минимальный синтаксис, основные конструкции, контейнеры, решает задачи с предопределенным и всегда корректным форматом ввода и вывода, и горя не знает...
В это же время, где-то в большом мире, матерые разработчики каждый день ругают то одни языки программирования, то другие. По самым разным причинам: не удобно, нет какой-то возможности, много лишних букв писать, ошибки в стандартной библиотеке... Но есть язык, который ругают за все и особенно за такую непонятную и таинственную вещь как неопределенное поведение (undefined behavior, UB).
Спустя лет пять или шесть наш простой десятиклассник, горя не видавший в море оторванных от реальности программ, внезапно узнает, что тем самым горячо нелюбимым языком всегда был, остается и будет его C++.
А потом еще в течение нескольких лет он наткнется на самые кошмарные и невероятные ужасы, поджидающие программистов на C++ почти на каждом шагу. Так и появится эта серия заметок, собирающая наиболее отвратительные примеры, на которые очень легко наткнуться при решении повседневных задач.
Важно: этот сборник не является учебным пособием по языку и рассчитан на тех, кто уже знаком с программированием, с C++, и понимает основные его конструкции.
https://github.com/Nekrolm/ubbook
#cpp #programming
👉 @cpp_lib
Коллекция библиотек и фреймворков для C++
Список удивительных фреймворков, библиотек, ресурсов и блестящих вещей на C++ (или C). Вдохновленный удивительными... вещами.
https://github.com/fffaraz/awesome-cpp
#cpp #programming
👉 @cpp_lib
Зачем разработчикам на С++ юнит-тесты и как с ними работать?
Расскажет Андрей Рыжиков — разработчик в НИИ обработки аэрокосмических изображений. Встречаемся на бесплатном практическом уроке от OTUS, где вы вместе с опытным экспертом:
▫️напишете юнит-тесты для небольшого полноценного приложения;
▫️ найдете ошибки с их помощью;
▫️ увидите, как тесты помогают создавать надежные программы и приучают структурировать код;
▫️ обсудите стоимость и целесообразность написания тестов, границы их применимости.
Занятие пройдёт 20 февраля в 20:00 мск и будет приурочено к старту курса «Специализация C++ Developer». Доступна рассрочка на обучение!
📢Зарегистрируйтесь прямо сейчас, чтобы занять место на открытом уроке и получить запись: регистрацияРеклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🫵 Соберите свой первый проект на С++ и добавьте его в портфолио
👉 На бесплатном практическом уроке от OTUS и Карины Дорожкиной — ведущего разработчика в Kaspersky.
На вебинаре:
- разберем понятие единицы трансляции;
- проследим за ошибками компиляции и линковки, разберёмся в их причинах;
- создадим статическую библиотеку и подключим её при помощи CMake;
- обсудим разницу между статической библиотекой и динамической.
⏰ Занятие пройдёт 5 марта в 20:00 мск и будет приурочено к старту курса «Специализация C++ Developer». Доступна рассрочка на обучение!
👉 Зарегистрируйтесь прямо сейчас, чтобы занять место: https://vk.cc/cv2iYq
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
C++ Programming: Implicit and Explicit Constructors
https://dev.to/aboss123/c-programming-implicit-and-explicit-constructors-27be
#cpp #programming
👉 @cpp_lib
Полное руководство по CMake. Часть вторая: Система сборки
В данной статье рассмотрено использование системы сборки CMake, применяемой в колоссальном количестве проектов на C/C++. Строго рекомендуется прочитать первую часть руководства во избежание непонимания синтаксиса языка CMake, явным образом фигурирующего на протяжении всей статьи.
https://telegra.ph/Polnoe-rukovodstvo-po-CMake-CHast-vtoraya-Sistema-sborki-02-27
PS
Статья недоступна на хабре, достали из архива, все ссылки ведут через веб архив. При желании можно ручками поправить.
#cpp #programming
👉 @cpp_lib
💻Старт курса “Реверсивный инжиниринг ПО под ОС Windows”
Начало обучения: 4 марта
🎓 За 6,5 месяцев вы:
- Подробно изучите команды языка Ассемблер
- Освоите техники поиска уязвимостей в десктопных приложениях
- Проведете детальный анализ уязвимостей разных приложений, от простейших crackme до полноценных приложений
- Изучите образцы вредоносных приложений и методы заражения машин
💡 Кому будет полезен курс:
- Пентестерам
- Вирусным аналитикам
- Исследователям кода вредоносного ПО
- Разработчикам ПО
- Всем интересующимся тематикой ВПО
🎓 Учитесь дистанционно, без отрыва от вашей профессиональной деятельности и получите сертификат по окончании курса
🚀 Запись на курс уже открыта – начните свой путь в мир реверс-инжиниринга с Академией Кодебай!
Сборник разных гайдов/примеров по cmake 💪
https://github.com/onqtam/awesome-cmake
#cpp #programming
👉 @cpp_lib
Практика языка C, 2023-2024
Семинар 1.1. Алгоритм Евклида.
Семинар 1.2. Системы счисления.
Семинар 1.3. Числа Фибоначчи.
Допсеминар: unix shell
Семинар 2.1. Простые числа.
Семинар 2.2. Побитовые вычисления.
Семинар 2.3. Время и случайность.
Углубление пройденного: логическая память и виртуальная память.
Семинар 3.1. Линейный поиск и простые сортировки.
Семинар 3.2. Стратегия "разделяй и властвуй".
источник
#cpp #programming
👉 @cpp_lib
The Fundamentals of C/C++ Game Programming
Brian Beuken (2018)
This book is aimed at giving novice coders an understanding of the methods and techniques used in professional games development. Designed to help develop and strengthen problem solving and basic C/C++ skills, it also will help to develop familiarity targeting and using fixed/restricted hardware, which are key skills in console development. It allows the reader to increase their confidence as game programmers by walking them through increasingly involved game concepts, while maintaining the understanding that despite the increased complexity, the core methods remain consistent with the advancement of the technology; the technology only enhances the gaming experience. It also demonstrates underlying principles of game coding in practical step by step ways to increase exposure and confidence in game coding concepts.
@cpp_knigi
Первый проект длиною в полтора года…
Свободное от работы время я посвящаю изучению 3D-моделирования и печати. Для этих целей в 2018 году были куплены два самодельных FDM-принтера.
В один из дней приходит знакомый, держа в руках плату с большим количеством радиаторов. Предлагает посмотреть краем глаза, почему она не работает.
Я, конечно же, был не очень рад его предложению, так как занимаюсь больше ремонтом мобильных телефонов и планшетов. В процессе небольшой дискуссии соглашаюсь с одной оговоркой, что если за два выходных дня у меня получится погрузиться в проблему и изучить сам вопрос и понять, что это за плата, то я берусь.
Уже вечером этого дня я изучаю дома плату и первый раз узнаю такие слова, как "Asic", майнер, майнинг. Изучив немного вопрос, понимаю, что имею на руках плату одного такого устройства, а в данном случае именно AntMiner S9.
https://habr.com/ru/articles/746118/
#cpp #programming
👉 @cpp_lib
Стоит ли становиться Rust-разработчиком в 2024 и как это сделать?
💻Узнайте на бесплатном практическом уроке от OTUS, где вы вместе с опытным экспертом:
- обсудите основные направления развития языка и его инфраструктуры;
- рассмотрите наиболее востребованные навыки по этим направлениям;
- разберёте типичное собеседование на должность Rust-разработчика в различных областях.
Встречаемся 26 февраля в 20:00 мск в рамках курса «Rust Developer. Professional». Доступна рассрочка на обучение!
👉Пройдите короткий тест прямо сейчас, чтобы посетить бесплатный урок и получить запись: https://tglink.io/c35dd5ca2e60?erid=LjN8KVGcB
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
🔧С чего начать изучение программирования микроконтроллеров?
С бесплатного практического урока от OTUS “Hello world - ведение в программирование микроконтроллеров”, где вы вместе с опытным экспертом:
- расширите практические навыки в области электроники и программирования;
- научитесь подключать UART для обмена данными, управлять светодиодом для визуальной индикации процессов и считывать состояния кнопки для пользовательского ввода;
- научитесь самостоятельно разрабатывать программное обеспечение для интерактивного взаимодействия с микроконтроллером.
🔥Встречаемся 26 февраля в 20:00 мск в рамках курса «Embedded Developer».
👉Регистрируйтесь прямо сейчас, чтобы посетить бесплатный урок и получить запись.
При поступлении в группу обучения возможны разные способы оплаты и рассрочка платежа
erid: LjN8KGQyq
C++ FULL COURSE For Beginners (Learn C++ in 10 hours)
https://www.youtube.com/watch?v=GQp1zzTwrIg
#cpp #programming
👉 @cpp_lib
Awesomecpp
Коллекция различных ресурсов по C++
https://awesomecpp.com/
#cpp #programming
👉 @cpp_lib
С++ считают титаном в мире программирования. Сегодня этот язык применяют в геймдеве, веб-разработке, создании корпоративных и банковских приложений. На нём написаны Windows, Linux и macOS, Android, Chrome, Counter-Strike, StarCraft и Diablo.
Освоить язык проще всего на онлайн-курсе Skillbox «Профессия Разработчик на C++ с нуля»:
✔️ Всего за 7 месяцев пройдете университетскую программу онлайн, не выходя из дома.
✔️ Выучите С++ — универсальный язык, на котором пишут веб-приложения, игры, драйверы и десктопные программы.
✔️ Пополните портфолио поисковым движком для сайта компании на С++.
Каждый студент получает гарантию трудоустройства после обучения. Если вы не найдете работу — вернём деньги за курс. Подробные условия акции — на сайте.
Узнать подробнее о курсе и получить скидку до 50% можно здесь: https://epic.st/ijmP-5
Реклама. ЧОУ ДПО «Образовательные технологии «Скилбокс (Коробка навыков)», ИНН: 9704088880
Back To Basics CppCon 2020
The Abstract Machine
The Structure of a Program
Class Layout
Pointers and Memory
Templates (part 1 of 2)
Templates (part 2 of 2)
Lambda Expressions
источник
#cpp #programming
👉 @cpp_lib
Краткий обзор библиотечных функций C++11 и выше
https://github.com/AnthonyCalandra/modern-cpp-features
#cpp #programming
👉 @cpp_lib