Skip to content

DinaSit/cpp-practice-tasks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

134 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

About

Репозиторий содержит набор самостоятельных реализаций на C++, охватывающих ключевые механизмы языка и его библиотек.

template-functions

  • Шаблонные функции для работы с отсортированными последовательностями: 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.

implementation-classes

  • Упрощенный аналог класса 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.

programs

Содержит реализацию упрощенного калькулятора с построением дерева выражения. Программа состоит из токенизатора, парсера, программы вычисляющей выражение, реализации польской нотации.

tasks

Различные задачи на применение стандартных библиотек: algorithm, string, vector, map, unordered_map, set, unordered_set, ranges.

Репозиторий используется как портфолио и как систематизированная база практики по C++.

About

Solved C++ practice tasks with explanations

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages