Репозиторий содержит набор самостоятельных реализаций на C++, охватывающих ключевые механизмы языка и его библиотек.
- Шаблонные функции для работы с отсортированными последовательностями: BinarySearch, LowerBound, UpperBound;
- Библиотека функицй
cstring: Strlen, Strcmp, Strncmp, Strchr, Strrchr, Strspn, Strcspn, Strpbrk, Strstr, Strcpy, Strncpy, Strcat, Strncat; - Реализация шаблонной функции Copy и функции CopyBackward;
- Реализация шаблонной функции IsSortedUntil;
- Реализация шаблонной функции Merge;
- Реализация шаблонной функции Remove;
- Реализация шаблонной функции Reverse и функции Rotate;
- Реализация шаблонной функции Unique.
- Упрощенный аналог класса
std::anyс механизмом "type erasure" (стирание типов); - Упрощенный аналог
std::array. С помощью механизма перегрузки шаблонов реализованы функции для извлечения свойств C-style массивов: GetSize, GetRank, GetNumElements; - Класс для работы с рациональными числами Rational;
- Упрощенный аналог класса умного указателя с разделяемым владением
std::shared_ptr, аналогstd::weak_ptr, аналогstd::make_shared; - Класс динамической строки — аналог
std::string, а также методы: Resize, Reserve, ShrinkToFit; - Реализован класс, который представляет собой обёртку над символьными данными, хранящую только указатель и размер, аналог
std::string_view; - Упрощенный аналог класса умного указателя с уникальным владением
std::unique_ptr, дополнительно реализована внешняя шаблонная функция MakeUnique.
Содержит реализацию упрощенного калькулятора с построением дерева выражения. Программа состоит из токенизатора, парсера, программы вычисляющей выражение, реализации польской нотации.
Различные задачи на применение стандартных библиотек: algorithm, string, vector, map, unordered_map, set, unordered_set, ranges.
Репозиторий используется как портфолио и как систематизированная база практики по C++.