Глава 18. Классы-контейнеры_______________________________453

Для извлечения и ввода элементов служат функции Get и Put. Get извлекает "старейший" элемент. Параметры, передаваемые в put и объекты, возвращаемые Get, являются указателями или ссылками в зависимости от прямого или косвенного типа контейнера.

h04531.jpg

^include <iostream.h> #include <iomanip.h> «include <classlib\queues.h> ftinclude "studentl.h"

//Очередь содержит указатели на объекты STUDENT typedef TIQueueAsVector<STUDENT> STUDENT_QUEUE;

// Итератор BIDS. typedef TIQueueAsVectorIterator<STUDENT> STUDENT_QUEUE_ITERATOR;

7/ Размещение элементов в контейнере. void WriteStudents(STUDENT_QUEUE&);

int. main() '1 . (

STUDENT_QUEUE students(10);

// Вставляем с головы.

students.Put(new STUDENT("JohnNewton", 1.0));

students.Put(new STUDENT("DeanBrown", 2.0));

students.Put(new STUDENT("CarlBishop", 3.0));

students . Put (new STUDENT ( "GaryCook" ,4.0));

cout « "Inital queue of " « students.GetItemsInContainerO ^« "students: " « endl;

WriteStudents(students) ;

/ delete students.Get О; // Удаление и уничтожение элементов.

cout « "After removing a student: " « endl;

WriteStudents(students);

students.Flush(); // Уничтожение элементов. return 0;

}

void WriteStudents(STUDENT_QUEUE &students) {

STUDENT_QUEUE_ITERATOR iterator(students);

STUDENT *S;

cout « setiosflags(ios::fixed ¦ ios::left) « setprecision(l) ;

while (s = iterator++)

cout « " " « setw(20) « s->Get!d() « " " « s->GetGrade() « endl;

}

Множество

Множество (set) — это неупорядоченный набор элементов со следующим ограничением: если и объект А и объект В содержатся в данном множестве,