Адаптеры контейнеров
В состав 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!