Библиотеки qt и stl. Иерархия объектов, коллекция, итераторы


Контейнер в программировании — тип, позволяющий инкапсулировать в себе объекты других типов. Контейнеры


Download 0.9 Mb.
bet4/9
Sana31.01.2023
Hajmi0.9 Mb.
#1142465
TuriЛабораторная работа
1   2   3   4   5   6   7   8   9
Bog'liq
1671980777134 Лаб раб 4п

Контейнер в программировании — тип, позволяющий инкапсулировать в себе объекты других типов. Контейнеры, в отличие от коллекций, реализуют конкретную структуру данных (массив, список, очередь, дерево, граф и т.д).

Замечание.
Обычно в С++, в частности в библиотеке STL и, аналогично, в библиотеке QT, не делают особых различий между коллекциями и контейнерами, а все подобные классы принято называть контейнерами. В дальнейшем мы также будем называть подобные классы контейнерами.

Обычно контейнеры используются для хранения групп однотипных объектов, подлежащих стереотипной обработке. Для обращения к конкретному элементу контейнера могут использоваться различные методы, в зависимости от её логической организации. Реализация может допускать выполнение отдельных операций над контейнерами в целом. Наличие операций над контейнерами во многих случаях может существенно упростить программирование.
Примеры контейнеров: объекты контейнерных классов библиотеки STL в C++ (массивы, списки, очереди) и аналогичные в библиотеке Qt (QVector, QList, QLinkedList, QMap, QSet).
В отличие от контейнера коллекцию понимают, как класс, который не только хранит объекты других классов, но и обладает собственными свойствами, не вытекающими из свойств его элементов.
Реализовать контейнер можно несколькими способами:
1. Как в предыдущем примере – класс, описывающий окно (представляется в виде контейнера).
2. Класс- контейнер содержит член-данное last, представляющее собой ссылку на общий класс для всех элементов контейнера (например, в Qt общим классом для всех классов библиотеки является класс QObject). Это поле указывает на начало связанного списка объектов, включенных в группу. В этом случае объекты должны иметь поле next того же типа, что и last (в Qt это QObject*), указывающее на следующий элемент в списке.
3. Создается связанный список структур типа (например, СItem):

Поле item указывает на объект, включенный в коллекцию. Коллекция содержит поле last типа CItem *, которое указывает на начало связанного списка структур типа CItem.
Если необходим доступ элементов группы к ее полям и методам, объект типа QObject должен иметь поле owner типа CItem*, которое указывает на собственника этого элемента.

Download 0.9 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling