Unrolled Linked List. STL - совместивый контейнер
Реализовать STL-совместимый контейнер для UnrolledLinkedList.
Контейнер должен предоставлять из себя шаблон, праметрезируемый типом хранимых объетов, максимальным количеством элементов в ноде и аллокатором, а так же частично(см ниже) удовлетворять следующим требованиям к stl - совместимым контейнерам:
- контейнера
- последовательный контейнера
emplaceassign_rangeemplace_frontemplace_backprepend_rangeoperator[]
- контейнера с обратным итератором
- контейнера поддерживающие аллокатор
- oбладать двунаправленным итератом
Помимое этого обладать следующими методами
| Метод | Алгоримическая сложность | Гарантии исключений |
|---|---|---|
| insert | O(1) для 1 элемента, O(M) для M | strong |
| erase | O(1) для 1 элемента, O(M) для M | noexcept |
| clear | O(N) | noexcept |
| push_back | O(1) | strong |
| pop_back | O(1) | noexcept |
| push_front | O(1) | strong |
| pop_front | O(1) | noexcept |
Все вышеуказанные требования должны быть покрыты тестами, с помощью фреймворка Google Test.
Часть тестов предоставляется заранее.
- Запрещено использовать стандартные контейнеры