eavbinary / otus_cpp_basic_06

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

OTUS C++ Basic курс

Задание "Реализация контейнеров"

В задании требуется реализовать два контейнера динамического размера – последовательный и спискового типа – и пользовательский код с демонстрацией возможностей этих контейнеров.

  1. Последовательный контейнер Отличительная черта такого контейнера – расположение элементов друг за другом подряд (как и у обычного массива в стиле Си).
  2. Контейнер спискового типа – не предоставляет гарантий расположения элементов друг за другом в памяти. Связь между элементами осуществляется через указатели (указатель на предыдущий элемент и/или указатель на следующий элемент). Пользовательский код (вызывается из функции main) должен содержать следующий набор действий с обоими контейнерами:
  3. создание объекта контейнера для хранения объектов типа int
  4. добавление в контейнер десяти элементов (0, 1 … 9)
  5. вывод содержимого контейнера на экран ожидаемый результат: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
  6. вывод размера контейнера на экран ожидаемый результат: 10
  7. удаление третьего (по счёту), пятого и седьмого элементов
  8. вывод содержимого контейнера на экран ожидаемый результат: 0, 1, 3, 5, 7, 8, 9
  9. добавление элемента 10 в начало контейнера
  10. вывод содержимого контейнера на экран ожидаемый результат: 10, 0, 1, 3, 5, 7, 8, 9
  11. добавление элемента 20 в середину контейнера
  12. вывод содержимого контейнера на экран ожидаемый результат: 10, 0, 1, 3, 20, 5, 7, 8, 9
  13. добавление элемента 30 в конец контейнера
  14. вывод содержимого контейнера на экран ожидаемый результат: 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 .

About


Languages

Language:C++ 97.0%Language:CMake 3.0%