В задании требуется реализовать два контейнера динамического размера – последовательный и спискового типа – и пользовательский код с демонстрацией возможностей этих контейнеров.
- Последовательный контейнер Отличительная черта такого контейнера – расположение элементов друг за другом подряд (как и у обычного массива в стиле Си).
- Контейнер спискового типа – не предоставляет гарантий расположения элементов друг за другом в памяти. Связь между элементами осуществляется через указатели (указатель на предыдущий элемент и/или указатель на следующий элемент). Пользовательский код (вызывается из функции main) должен содержать следующий набор действий с обоими контейнерами:
- создание объекта контейнера для хранения объектов типа int
- добавление в контейнер десяти элементов (0, 1 … 9)
- вывод содержимого контейнера на экран ожидаемый результат: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
- вывод размера контейнера на экран ожидаемый результат: 10
- удаление третьего (по счёту), пятого и седьмого элементов
- вывод содержимого контейнера на экран ожидаемый результат: 0, 1, 3, 5, 7, 8, 9
- добавление элемента 10 в начало контейнера
- вывод содержимого контейнера на экран ожидаемый результат: 10, 0, 1, 3, 5, 7, 8, 9
- добавление элемента 20 в середину контейнера
- вывод содержимого контейнера на экран ожидаемый результат: 10, 0, 1, 3, 20, 5, 7, 8, 9
- добавление элемента 30 в конец контейнера
- вывод содержимого контейнера на экран ожидаемый результат: 10, 0, 1, 3, 20, 5, 7, 8, 9, 30 Требования к минимальному интерфейсу:
- метод/ы (может быть несколько) добавления элементов в конец контейнера ( push_back )
- метод/ы вставки элементов в произвольную позицию ( insert )
- метод/ы удаления элементов из контейнера ( erase )
- метод получения текущего размера контейнера ( size )
- метод/ы получения доступа по индексу ( operator[] ) Допустимо добавить и другие вспомогательные методы с пользовательским кодом, демонстрирующим их назначение.
Требуется компилятор с поддержкой C++17
Для сборки проекта необходимo выполнить следующие команды
mkdir build && cd build
cmake ..
cmake --build .