Skip to content

Ltins/CircularQueue

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Тестовое задание.

Условие:

Тестовое задание по С++ Целевая платорма : x86 Студия разработки : любая Файл сборки : cmake

Разработку вести с использованием системы контроля версий GIT

Итоговый проект выложить на github / gitlab c предоставлением ссылки

Написать класс/ы для реализации контейнера, совместимого с STL, использующий метод хранения данных как циклическая очередь. Размер контейнера задавать статически на этапе компиляции, должен быть предусмотрен механизм контроля добавления элементов в очередь на переполнения очереди. Подразумевается, что если очередь полная, то перезаписывать самые старые внесенные в очередь данные.

Выолнение: Было решено реализовывать очередь на основе массива, так как размер статический. Контроль за количеством элементов осуществляется при помощи двух индексов на начало и конец очереди соответственно. Добавление элементов в очередь реализовано таким образом, чтобы индекс начала очереди всегда указывал на самые старые внесённые данные. Таким образом, удаляя из начала очереди, можно выполнить сразу два условия: FIFO (условие очереди) и замещение самых старых внесенных данных при переполнении. Также был реализован класс итератора для совместимости с STL. Дополнительно реализованы некоторые операторы для работы со стандартной библиотекой алгоритмов и проверена совместимость с последними.

Использование: enqueue() & dequeue() - для добавления и удаления элементов соответственно at() - для доступа к элементам очереди empty(), size(), full() - для проверки состояния очереди clear() - для очистки очереди Есть перегрузка оператора << для вывода в cout

Для класса итератора реализованы операторы сравнения и постфиксное\префиксное увеличение\уменьшение

P.S. Не убирал дебажный код, может оказаться полезным для тестирования.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published