Шаг 141.
Библиотека STL.
Контейнеры STL. Деки (общие сведения)

    На этом шаге мы приведем общие сведения о деках.

    Дек очень похож на вектор. Он тоже работает с элементами, оформленными в динамический массив, поддерживает произвольный доступ и обладает практически тем же интерфейсом. Различие заключается в том, что динамический массив дека открыт с обоих концов. По этой причине дек быстро выполняет операции вставки и удаления как с конца, так и с начала.


Рис.1. Логическая структура дека

    Дек обычно реализуется в виде набора блоков; первый и последний блоки наращиваются в противоположных направлениях.


Рис.2. Внутренняя структура дека

    Чтобы использовать дек в программе, необходимо включить в нее заголовочный файл <deque>:

  #include <deque>

    Тип дека определяется как шаблон класса в пространстве имен std:

namespace std {
  template <class Т,
            class Allocator = allocator<T> > 
  class deque;
}

    Как и в случае с вектором, тип элементов дека передается в первом параметре шаблона. Допускается любой тип, поддерживающий присваивание и копирование. Необязательный второй параметр шаблона определяет модель памяти, по умолчанию используется модель allocator.

    На следующем шаге мы рассмотрим возможности деков.




Предыдущий шаг Содержание Следующий шаг