Адаптеры контейнеров



В состав STL входят три адаптера контейнеров – stack, queue и

priority_queue. Адаптеры не предоставляют реализации фундаментальной

структуры данных и не поддерживают работу с итераторами. Это отличает их

от контейнеров первого класса. Преимущество класса адаптеров состоит в возможности выбирать требуемую базовую структуру данных. Все три класса адаптеров содержат компоненты-функции push и pop, реализуемые посредством вызова соответствующих функций базового класса.

 

Класс stack обеспечивает возможность вставки и удаления данных в базовой структуре с одной стороны. Адаптер stack может быть реализован с любым из контейнеров последовательностей: vector, list и deque (по умолчанию реализуется с контейнером deque). Для класса stack определены следующие операции (реализуемые через соответствующие функции базового контейнера): push – помещение элемента на вершину стека, pop – удаление элемента с вер-шины стека, top – получение ссылки на вершину стека, empty – проверки на

пустоту стека и size – получение числа элементов стека.

 

Класс queue предназначен для вставки элементов в конец базовой структуры данных и удаления элементов из ее начала. Адаптер queue реализуется с контейнерами list и deque (по умолчанию).

Наряду с общими для всех классов адаптеров операциями push, pop,

empty и size в классе queue имеются операции front – получения ссылки на первый элемент очереди, back – ссылки на последний элемент очереди.

 

Класс priority_queue используется для вставки элементов в отсортированном порядке в базовую структуру данных и удаления элементов из ее начала. Адаптер priority_queue реализуется с контейнерами vector (по умолчанию)и deque.

Элементы в очередь с приоритетом заносятся в соответствии со своим

значением. Это означает, что элемент с максимальным значением помещается в начало очереди и будет первым из нее удален, а с минимальным − в конец очереди. Это достигается с помощью метода, называемого сортировкой кучи. Сравнение элементов выполняется функцией-объектом less<Тип> или другой компараторной функцией. Как и предыдущие адаптеры, priority_queue использует операции push,

pop, empty, size, а также операцию top – получения ссылки на элемент с наивысшим приоритетом.


 


Дата добавления: 2015-12-21; просмотров: 39; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!