Двусторонние Очереди C++
Двусторонние очереди (или deques) аналогичны векторам, с той разницей, что они позволяют быстро вставлять и удалять элементы и с начала, и с конца контейнера.
Двусторонние очереди C++ обычно реализовываются как динамические массивы, растущие в оба конца. Такая реализация гарантирует доступ за константное время, вставку и удаление с обоих концов очереди - за амортизированное константное время, вставку и удаление из середины очереди - за линейное время.
| Конструкторы | создают двустороннюю очередь и инициализируют ее какими-то данными |
| Операторы | осуществляют сравнение, присваивание и доступ к элементам двусторонней очереди |
| assign | присваивает элементы двусторонней очереди |
| at | возвращает элемент в заданной позиции |
| back | возвращает ссылку на последний элемент двусторонней очереди |
| begin | возвращает итератор на начало двусторонней очереди |
| clear | удаляет все элементы из двусторонней очереди |
| empty | истина, если двусторонняя очередь пуста |
| end | возвращает итератор на место после последнего элемента двусторонней очереди |
| erase | удаляет заданные элементы из двусторонней очереди |
| front | возвращает ссылку на первый элемент двусторонней очереди |
| insert | вставляет элементы в двусторонней очереди |
| max_size | возвращает максимальное число элементов, которое может содержать двусторонняя очередь |
| pop_back | удаляет последний элемент двусторонней очереди |
| pop_front | удаляет первый элемент двусторонней очереди |
| push_back | добавляет элемент в конец двусторонней очереди |
| push_front | добавляет элемент в начало двусторонней очереди |
| rbegin | возвращает reverse_iterator на конец двусторонней очереди |
| rend | возвращает reverse_iterator на начало двусторонней очереди |
| resize | изменяет размер двусторонней очереди |
| size | возвращает количество элементов в двусторонней очереди |
| swap | меняется содержимым данной двусторонней очереди с другой |
[править] Замечания
К сожалению, в русском языке нет такого же емкого и краткого названия для двусторонней очереди, как в английском. Возможно, стоит подумать над дсочередью, дочередью или даже дочерью. В оригинале же название deque произносится как "deck", это сокращение от "double-ended queue." Кнут сообщает, что такое же имя было придумано Е. Д. Швеппе. См. параграф 2.2.1 из книги Кнута для дальнейшей информации о двусторонних очередях. (D. E. Knuth, The Art of Computer Programming. Volume 1: Fundamental Algorithms, second edition. Addison-Wesley, 1973.)