Задача 2. Спроектировать шаблон классов Vector, в котором должен быть реализован вектор. Вектор должен быть предназначен для хранения элементов произвольного типа. Размеры вектора неограничены, то есть должен быть реализован связанный метод хранения вектора (см. Связные списки в C++).

Структура связного списка в C++
В классе должны быть реализованы следующие функции:
1. bool IsEmpty () – возвращает true, если вектор пуст, false – не пуст;
2. unsigned int GetSize () – возвращает число элементов вектора (если вектор испорчен, возвращает 0);
3. T& GetFront () – возвращает значение первого элемента вектора (но не удаляет его из вектора);
4. T& GetBack () – возвращает значение последнего элемента вектора (но не удаляет его из вектора);
5. void PushBack (const T& val) – помещает новый элемент в конец вектора;
6. void PopBack () – удаляет (но не возвращает) последний элемент вектора;
7. T& at (unsigned int i) – возвращает значение i-го элемента вектора. Причем должна осуществляться проверка, попадает ли переданный функции индекс в диапазон допустимых значений. Если нет, выдать соответствующее сообщение.
Написать программу, демонстрирующую работу с вектором (использующую все его функции).
Для хранения элементов вектора можно использовать структуру node, преобразовав ее в шаблон (шаблоны структур создаются так же, как и шаблоны классов). Класс Vector должен хранить указатель на первый элемент (используется в функции GetFront()) и указатель на последний занесенный в вектор элемент.
Вы просто обязаны почитать интересный seo блог, в котором написано очень много полезного.






