500 Часть III. Современное программирование на C++
Для использования двусторонних очередей библиотеки STL в программный код должна быть включена директива:
#include <deque.h>
Двусторонние очереди объявляются так же, как векторы. Все функции-члены, операции и определения типов для векторов работают и для двусторонних очередей, кроме функций capacity () и reserved. Для двусторонних очередей есть две дополнительные функции — push_front () и pop_front (). Функция push_front() добавляет элементы в начало очереди, a pop_front() удаляет элементы из начала последовательности:
deque<string> strDeque;
string str("front of the line") ;
strDeque.push_front(str); // *strDeque.begine() == str strDeque.pop front(); // Удаление str.
Основные функции-члены для двусторонних очередей обсуждались в предыдущем разделе "Вектор".
ftdefine RWSTD_NO_NAMESPACE
#include <iostream.h> ftinclude <algorith.h>
#include <deque.h>
#include "student3.h"
typedef deque<STUDENT> STUDENT_DEQUE;
int main() ^
STUDENT_DEQUE students;
students.push_back(STUDENT("Abe Line", 3.2));
students.push_back(STUDENT("John Brown", 2.0));
students.push_back(STUDENT("Frank Coke", 2.5));
students.push_back(STUDENT("Sam Adit", 0.6));
students.push_back(STUDENT("Samual Cart", 4.0));
students.push_back(STUDENT("Ida Smith", 1.4));
students.push_back(STUDENT("Tom Johnson", 3.9));
students.push_back(STUDENT("Carl West", 2.6));
sort(students.begin(), students.end());
cout « "Студенты отсортированы по имени: \п";
for (STUDENT_DEQUE::iterator i = students.begin();
'bi != students, end (); i++) cout « *i « " ";
cout « endl;