Содержание пакета (2 курса)
1. Стандартные алгоритмы (С++20 и новее) 5.00
Концепции и требования
8 уроков
1.
Общие понятия
↗
2.
Категории итераторов
↗
3.
Связанные концепции
↗
4.
Cвязанные типы
↗
5.
Концепции диапазонов
↗
6.
Концепции алгоритмов
↗
7.
Требования к функциям и предикатам
↗
8.
Примеры и вопросы
↗
Работа с последовательностями по-новому
5 уроков
1.
Почему std::ranges появился
↗
2.
Первые алгоритмы
↗
3.
Проекции
↗
4.
Категории алгоритмов - обзор
↗
5.
Контрольные задания
↗
Алгоритмы std::ranges::*
12 уроков
1.
Базовые алгоритмы
↗
2.
Обход
↗
3.
Поиск и проверка условий
↗
4.
Копирование и перемещение
↗
5.
Модификация in-place
↗
6.
Сортировка и упорядочивание
↗
7.
Уникальность и сравнение
↗
8.
Слияние и объединение
↗
9.
Перестановки и вращения
↗
10.
Диапазоны и границы
↗
11.
Алгоритмы для работы с кучей
↗
12.
Контрольные вопросы и задачи
↗
Концепты: от проблемы к модели
7 уроков
1.
Проблема неограниченных шаблонов
↗
2.
Что такое concept
↗
3.
Требования к выражениям
↗
4.
Связанные типы и traits
↗
5.
Категории итераторов через концепты
↗
6.
Ограничения алгоритмов STL
↗
7.
Контрольные задания
↗
Категории значений и время жизни
6 уроков
1.
lvalue / xvalue / prvalue
↗
2.
Пересылка и свертывание ссылок
↗
3.
Время жизни в ranges
↗
4.
borrowed_range
↗
5.
Возвращаемые типы алгоритмов
↗
6.
Контрольные задания
↗
std::views::*
14 уроков
1.
Что такое views
↗
2.
Архитектура views
↗
3.
Обзор ключевых views
↗
4.
Трансформации и фильтрации
↗
5.
Агрегации и комбинирование
↗
6.
Устройство и поведение
↗
7.
Новые views в C++23
↗
8.
Композиция views в цепочке
↗
9.
Примеры из практики
↗
10.
Как устроены views внутри
↗
11.
Производительность
↗
12.
Интеграция views с концептами и requires
↗
13.
std::ranges::to
↗
14.
Контрольные вопросы и задачи
↗
Модель Range
5 уроков
1.
begin/end и sentinel
↗
2.
Range-концепции
↗
3.
Дополнительные свойства
↗
4.
subrange
↗
5.
Контрольные задания
↗
Обратная связь
1 урок
1.
Обратная связь
↗
Views как ленивые адаптеры
7 уроков
1.
Что такое view
↗
2.
Базовые views
↗
3.
Композиция
↗
4.
Views C++23
↗
5.
ranges::to и материализация
↗
6.
Производительность
↗
7.
Контрольные задания
↗
Алгоритмы std::ranges
8 уроков
1.
Поиск и проверки
↗
2.
Копирование и трансформации
↗
3.
Модификация
↗
4.
Сортировка и порядок
↗
5.
Heap
↗
6.
Слияние и множества
↗
7.
Numeric
↗
8.
Контрольные задания
↗
Архитектура стандартной библиотеки
6 уроков
1.
CPO
↗
2.
Как работает pipe-оператор
↗
3.
Как устроен filter_view
↗
4.
Как реализовать свой view
↗
5.
Диагностика сложных ошибок
↗
6.
Контрольные задания
↗
Архитектурное применение
3 урока
1.
Переписывание legacy-кода
↗
2.
DSL для обработки данных
↗
3.
Антипаттерны
↗
Итоговый тест
2 урока
1.
Вопросы
↗
2.
Задачи
↗
Больше практики
1 урок
1.
↗
2. Стандартные алгоритмы С++ 5.00
Навигация
1 урок
1.
↗
Оценка сложности O()
2 урока
1.
Теория
↗
2.
Практика
↗
Алгоритмы поиска
2 урока
1.
Теория
↗
2.
Практика
↗
Алгоритмы сортировки и упорядочивания
2 урока
1.
Теория
↗
2.
Практика
↗
Алгоритмы модификации
2 урока
1.
Теория
↗
2.
Практика
↗
Алгоритмы сравнения
2 урока
1.
Теория
↗
2.
Практика
↗
Алгоритмы нарезки и перестановки
2 урока
1.
Теория
↗
2.
Практика
↗
Алгоритмы разбиения
2 урока
1.
Теория
↗
2.
Практика
↗
Алгоритмы куч (heap)
2 урока
1.
Теория
↗
2.
Практика
↗
Алгоритмы наборов и слияний
2 урока
1.
Теория
↗
2.
Практика
↗
Численные алгоритмы
2 урока
1.
Теория
↗
2.
Практика
↗
Минимум/максимум и ограничения
2 урока
1.
Теория
↗
2.
Практика
↗
Алгоритмы для работы с парой итераторов
2 урока
1.
Теория
↗
2.
Практика
↗
Рекурсия
2 урока
1.
Теория
↗
2.
Практика
↗
Семантика перемещения
6 уроков
1.
Временные объекты
↗
2.
Copy elision и NRVO
↗
3.
move и другие
↗
4.
Копировать нельзя переместить
↗
5.
Техники передачи
↗
6.
Move-итераторы
↗
Основные виды сортировок
7 уроков
1.
Сравнение и выбор
↗
2.
Базовые сравнительные сортировки O(N^2)
↗
3.
Классические сравнительные сортировки O(n log n)
↗
4.
Сортировки на базе структур данных
↗
5.
Инженерные и гибридные сортировки
↗
6.
Несравнительные сортировки
↗
7.
Вопросы
↗
Общие вопросы и задачи
2 урока
1.
Задачи
↗
2.
Вопросы
↗
Обратная связь
1 урок
1.
Обратная связь
↗