Дек на основе двух векторов
Условие
Напишите шаблонный класс Deque, содержащий набор методов:
- конструктор по умолчанию
- константный метод
Empty, возвращающийtrue, если дек не содержит ни одного элемента - константный метод
Size, возвращающий количество элементов в деке T& operator[](size_t index)иconst T& operator[](size_t index) const, возвращающий ссылку на элемент с индексомindex- константный и неконстантный метод
At(size_t index), возвращающий ссылку на элемент с индексомindexи генерирующий стандартное исключениеstd::out_of_range, если индекс больше или равен количеству элементов в деке - константные и неконстантные версии методов
FrontиBack, возвращающих ссылки на первый и последний элемент дека соответственно - методы
PushFrontиPushBack
Неконстантные версии методов должны позволять изменять соответствующий элемент дека.
Для реализации заведите внутри класса Deque два вектора: в один осуществляйте вставку в методе PushFront, а в другой - в методе PushBack.
Заголовочный файл, который вы пришлете на проверку, не должен подключать файлы <list>, <deque>, <set>, <map>. Если у вас будет подключен один из этих файлов, вы получите ошибку компиляции.
Как тестировать локально
mkdir build; cd build
cmake ..; cmake --build .
ctest -V