Глава 18. Классы-контейнеры_______________________________453
Для извлечения и ввода элементов служат функции Get и Put. Get извлекает "старейший" элемент. Параметры, передаваемые в put и объекты, возвращаемые Get, являются указателями или ссылками в зависимости от прямого или косвенного типа контейнера.
^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) — это неупорядоченный набор элементов со следующим ограничением: если и объект А и объект В содержатся в данном множестве,