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.

Основные функции-члены для двусторонних очередей обсуждались в предыдущем разделе "Вектор".

h05001.jpg

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;