Автор: <span>admin</span>

Алгоритмы

State: автоматы состояний через паттерн

Введение В статьях QML-цикла разбирала States/Transitions QML как декларативный механизм управления состояниями интерфейса — паттерн State даёт концептуально аналогичный, но реализуемый непосредственно на C++ подход к структурированию кода,…

Алгоритмы

Command: инкапсуляция действия как объекта (undo/redo)

Введение Большинство интерактивных приложений (текстовые редакторы, графические редакторы) нуждаются в функциональности отмены/повтора действий (undo/redo) — Command решает эту задачу, превращая каждое отдельное действие пользователя в самостоятельный объект, который…

Алгоритмы

Strategy: подстановка алгоритмов во время выполнения

Введение В этой статье разберём паттерн по существу, для случаев, где он РЕАЛЬНО оправдан: когда конкретный алгоритм для выполнения определённой задачи должен выбираться или изменяться во время выполнения,…

Паттерны

Chain of Responsibility и Mediator

Введение Завершаем обзор отдельных паттернов парой Chain of Responsibility (передача запроса по цепочке потенциальных обработчиков до первого, способного его обработать) и Mediator (централизация взаимодействия между множеством объектов через…

Паттерны

Итоговый мини-проект: рефакторинг приложения с применением нескольких паттернов

Введение В заключительной статье цикла паттернов проектирования (и текущего общего объёма всего плана статей) собираем итоговый, практический пример — рефакторим намеренно неструктурированный, «плохо организованный» фрагмент приложения обработки заказов,…

Алгоритмы

Графы: представление, обход (BFS/DFS), практическое применение

Введение После линейных структур и деревьев (частный случай графа без циклов) переходим к графам в общем виде — структуре, моделирующей произвольные связи между сущностями, естественной для широкого круга…

Алгоритмы

Деревья: бинарные деревья поиска, балансировка, map/set на их основе

Введение В статьях SQL-цикла упоминала B-tree индексы СУБД — в этой статье разберём похожую по духу, но более общую структуру данных программирования: бинарные деревья поиска, лежащие в основе…

Алгоритмы

Хеш-таблицы: unordered_map/unordered_set, коллизии, производительность

Введение QSet для демонстрации линейной сложности поиска дубликатов — в этой статье разберём хеш-таблицы (std::unordered_map/unordered_set, QHash/QSet) подробнее: принцип работы через хеш-функцию, проблему коллизий, и практические последствия для производительности.…

STL

Структуры данных STL изнутри: vector, list, deque — когда что выбрать

Введение Основной цикл статей уже использовал std::vector/QVector без подробного разбора внутреннего устройства — в этой статье разберём, как реализованы основные линейные контейнеры STL изнутри, и какая внутренняя структура…