Учебный проект Яндекс.Практикума
Разработан шаблонный класс вектор - аналог std::vector из стандартной библиотеки с++. Разработанный вектор автоматически увеличивает свой размер, эффективно работает с паметью.
Конструкторы и деструктор:
• Конструктор по умолчанию: создаёт вектор с нулевым размером и вместимостью. Работает за O(1) и не вызывает исключений.
• Конструктор с заданным размером: инициализирует вектор указанного размера. Вместимость векотора равна его размеру. Элементы получают значение по умолчанию. Алгоритмическая сложность O(N), где N - размер вектора. Устойчив к исключениям.
• Копирующий конструктор: создаёт копию элементов исходного вектора. Вместимость равна размеру оригинала. Работает без исключений за O(размер исходного вектора).
• Перемещающий конструктор: выполняется за O(1) без исключений.
• Деструктор освобождает память за линейное время.
Доступные методы:
• Size: возвращает количество элементов, не вызывает исключений.
• Capacity: показывает текущую вместимость, не вызывает исключений.
• Reserve: устанавливает вместимость вектора, оптимизируя работу при известном количестве элементов.
• PushBack: добавляет элемент в конец вектора, увеличивая вместимость при необходимости.
• PopBack: удаляет последний элемент и уменьшает размер на единицу.
• EmplaceBack: вставляет элемент с улучшенной безопасностью исключений.
• Insert: вставляет элемент в указанную позицию.
• Emplace: аналогичен Insert, использует perfect forwarding.
• Erase: удаляет элемент по итератору.
Доступные операторы:
• Оператор копирующего присваивания. Линейное время зависящее от максильно задействованного размера вектора.
• Оператор перемещающего присваивания. Константное время без выбрасывания исключений.
• Оператор [ ] для доступа к элементу вектора по индексу.
Сборка из командной строки или с помощью любого IDE
c++17 и выше.