Приложение 1. Описание программы
Класс MyVector
Базовый шаблонный класс MyVector
является динамическим. Размер вектора max_size
должен меняться в процессе выполнения программы следующим образом:
- если при добавлении элемента число элементов вектора
size
превысит размер вектора,max_size
увеличивается в2
раза (был8
, станет16
, еслиsize >= 8
) - если при удалении элемента число элем ентов вектора
size
станет меньшеmax_size/4
,max_size
уменьшается в2
раза, но должен быть не меньше значения по умолчанию (был16
, станет8
, еслиsize < 4
). Новый элемент добавляется в конец вектора.
Члены - данные
max_size
- размер вектора;size
- количество элементов в векторе;pdata
- указатель, содержащий адрес динамического массива элементов.
Конструкторы и деструктор
- Конструктор с одним параметром для создания множества размером
1
, который имеет значения по умолчанию и поэтому может использоваться для создания пустого множества; - Конструктор копирования;
- Деструктор.
Методы изменения
Класс MyVector
должен реализовывать следующие функции:
add_element
– вставка элемента в конец вектора;delete_element
– удаление элемента из произвольного места;find(el)
– возвращает индекс элемента или–1
, если элемент не найден;resize
– изменение размера вектораmax_size
при его переполнении или освобождении места;
Операторы
[]
- для возврата элемента вектора (доступ по индексу);=
- оператор присваивания.
Класс MySet
Шаблонный класс с именем MySet
включает элементы, представленные ниже.