Справочник по C/C++
deque

Класс deque поддерживает очередь с двусторонним доступом(дек). Спецификация его шаблона имеет следующий вид.

template <class Т, class Allocator = allocator<T>> class deque

Здесь Т - тип данных, сохраняемых в деке. Класс deque имеет следующие конструкторы.

explicit deque(const Allocator &a = Allocator());
explicit deque(size_type num, const Т &val = Т(), const Allocator &a = Allocator());
deque(const deque<T, Allocator> &ob);
template <class InIter> deque(InIter start, InIter end, const Allocator &a = Allocator());

Первая форма конструктора создает пустой дек. Вторая создает дек, который имеет пит элементов со значением val. Третья создает дек, который содержит те же элементы, что и объект ob. Четвертая создает очередь, которая содержит элементы в диапазоне, заданном параметрами start и end.

Для класса deque определены следующие операторы сравнения: ==, <, < = , !=, > и >=.

Класс deque содержит следующие функции-члены.

Функция-член Назначение
template <class InIter> void assign(InIter start, InIter end); Помещает в дек последовательность, определяемую параметрами start и end
void assign(size_type num, const т &val); Помещает в дек num элементов со значением val
reference at(size_type i);
const_reference at(size_type i) const;
Возвращает ссылку на элемент, заданный параметром i
reference back();
const_reference back() const;
Возвращает ссылку на последний элемент в деке
iterator begin();
const_iterator begin() const;
Возвращает итератор для первого элемента в деке
void clear(); Удаляет все элементы из дека
bool empty() const; Возвращает значение истины, если используемый дек пуст, и значение лжи в противном случае
const_iterator end() const;
iterator end();
Возвращает итератор для конца дека
iterator erase(iterator i);
Удаляет элемент, адресуемый итератором i; возвращает итератор для элемента, расположенного после удаленного элемента
iterator erase(iterator start, iterator end); Удаляет элементы в диапазоне, задаваемом параметрами start и end; возвращает итератор для элемента, расположенного за последним удаленным элементом
reference front();
const_reference front() const,
Возвращает ссылку на первый элемент в деке
allocator_type get_allocator() const; Возвращает распределитель дека
iterator insert(iterator i, const Т &val = Т()); Вставляет значение val непосредственно перед элементом, заданным параметром i; возвращает итератор для этого элемента
void insert(iterator i, size_type num, const Т &val); Вставляет num копий значения val сразу перед элементом, заданным параметром i
template <class InIter> void insert(iterator i, InIter start, Inlter end); Вставляет в дек последовательность, определяемую параметрами start и end, сразу перед элементом, заданным параметром i
size_type max_size() const; Возвращает максимальное число элементов, которое может содержать дек
reference operator[](size_type i) const;
const_reference operator[](size_type i) const;
Возвращает ссылку на i-й элемент
void pop_back(); Удаляет последний элемент в деке
void pop_front(); Удаляет первый элемент в деке
void push_back(const Т &val); Добавляет элемент со значением, заданным параметром val, в конец дека
void push_front(const т &val); Добавляет элемент со значением, заданным параметром val, в начало дека
reverse_iterator rbegin();
const_reverse_iterator rbegin() const;
Возвращает реверсивный итератор для конца дека
reverse_iterator rend();
const_reverse_iterator rend() const;
Возвращает реверсивный итератор для начала дека
void resize(size_type num, т val = T()); Устанавливает размер дека равным значению, заданному пара метром num. Если дек для этого нужно удлинить, то в конец дека добавляются элементы со значением, заданным параметром val
size_type size() const; Возвращает текущее количество элементов в деке
void swap(deque<T, Allocator> &ob); Выполняет обмен элементами данного дека и дека ob