Senior C++ Developer – Telegram
Senior C++ Developer
12.3K subscribers
1.36K photos
3 videos
610 links
Изучаем C++.

По вопросам сотрудничества: @adv_and_pr

РКН: https://www.gosuslugi.ru/snet/676e9a1e4e740947beca35ba
Download Telegram
Альфа-бета фильтр Калмана: фильтр «Hello, world!»

Данная статья подойдёт прежде всего для новичков, которые ничего не понимают в фильтрации, а стандартный и адаптивный фильтры Калмана вызывают недоумение. Прошу отнестись к ней с этой оговоркой.
Фильтрация нужна везде, где есть шум, а значит её применение имеет очень широкий диапазон.

Смотреть статью
Алгоритм copy_if

Копирует из диапазона элементов те элементы, проверка которых на соответствие заданному условию дает значение true.
Геометрические фигуры мультимедийной библиотеки SFML для разработки игр на C++

Смотреть статью
Zlib

Сжатие любых объёмов данных (даже превышающих объём памяти) с помощью zlib проводится предельно легко.

Zlib написана на языке С и применяется в тысячах проектов. Использование некоторых других библиотек невозможно без использования zlib. Примером такой библиотеки является основная библиотека для работы с растровой графикой в формате .png — libpng.

http://zlib.net/
C++ OpenGL Tutorial

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

Смотреть видеоуроки
Меняем фреймворк юнит-тестирования одной строчкой кода

Коротко, о чем статья: использование различных фреймворков юнит-тестирования для поддержки качества кода прошивок микроконтроллеров на языке С/С++, способ миграции на новый фреймворк, если на старом уже написано большое количество тестов.

Смотреть статью
Работа с файлами

Для того чтобы прочитать файл понадобится выполнить те же шаги, что и при записи в файл с небольшими изменениями:

1) создать объект класса ifstream и связать его с файлом, из которого будет производиться считывание;
2) прочитать файл;
3) закрыть файл.
Call Stack Logger — инструментирование функций как способ отслеживания потока выполнения программы

Доводилось ли вам когда-нибудь работать над C++ проектом с такой огромной кодовой базой, что понимание того, что на самом деле происходит во время выполнения программы, требует кучи времени и сил?

Смотреть статью
Регулятор нагрузки при помощи arduino nano

Данный регулятор управляется при помощи arduino и симисторного выхода. Необходимую мощность мощно выставить при помощи двух кнопок, а подаваемая мощность отображается на трехразрядном семисегментном индикаторе в процентах (0 - мощность не подается, 100 - максимальная мощность). Данный регулятор можно использовать для плавного управления нагревом нагревателей (для самогонных аппаратов самое то).

https://habr.com/ru/post/722184/
Быстрая сортировка

Отсортируйте заданный массив с помощью быстрой сортировки.

Формат входных данных:
Первая строка входных данных содержит одно натуральное число nn (1 ≤ n ≤ 10^5) – количество элементов в массиве. В следующей строке находятся элементы массива – n целых чисел, не превосходящих по абсолютной величине 10^9.

Формат выходных данных:
Выведите элементы массива в порядке неубывания.
#вопросы_с_собоседований
В чем различия между delete и delete[]?

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

При неправильном использовании оператора delete (например, delete вместо delete[]) результат будет: undefined behavior.
Жадный алгоритм
Данный алгоритм на каждом шаге делает локально оптимальный выбор, надеясь в итоге получить глобально оптимальное решение.

Пример: Дробный Рюкзак
Задача состоит в том, чтобы выбрать, какие предметы, имеющие вес и стоимость, поместить в рюкзак ограниченной ёмкости W, да так, чтобы максимизировать общую ценность его содержимого. Мы можем определить соотношение стоимости предмета к его весу, т. е. с «жадностью» выбирать предметы, имеющие высокую стоимость, но в то же время маленький вес, а затем сортировать их по этим критериям. В задаче с дробным рюкзаком нам разрешено брать дробные части предмета.

Поскольку сортировка — самая дорогая операция, алгоритм работает за время O(n log n). Принимая в формате (стоимость, вес) три пары предметов — {(60, 10), (100, 20), (120, 30)} — и итоговую вместительность рюкзака W = 50, приведённый выше код выводит следующее:
жадный дробный рюкзак
максимальная ценность: 240.
C++17 — std::string_view и никакого копирования

Назначение std::string_view заключается в том, чтобы избежать копирования данных, которые уже чему-то принадлежат и для которых требуется только лишь неизменяемое представление. Как вы уже могли догадаться, этот пост будет посвящен производительности. В статье пойдет речь об одной главных фич C++17.

Смотреть статью
Корутины в UnrealEngine

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

Смотреть статью