В информатике, контейнер - это класс, структура данных или абстрактный тип данных (ADT), экземпляры которого являются коллекциями других объектов. Другими словами, они хранят объекты организованным образом с соблюдением определенных правил доступа. Размер контейнера зависит от количества содержащихся в нем объектов (элементов). Базовые (унаследованные) реализации различных типов контейнеров могут различаться по размеру и сложности и обеспечивать гибкость в выборе правильной реализации для любого заданного сценария.
Контейнеры можно охарактеризовать следующими тремя свойствами:
классы контейнера ожидается, что будут реализованы следующие методы:
Иногда используются контейнеры в сочетании с итераторами.
Контейнеры можно классифицировать как однозначные контейнеры или как ассоциативные контейнеры.
Однозначные контейнеры хранят каждый объект независимо. Доступ к объектам можно получить напрямую или с помощью итератора.
Ассоциативный контейнер использует ассоциативный массив, карту или словарь, состоящий из пар ключ-значение, так что каждый ключ появляется не более одного раза в контейнер. Ключ используется для поиска значения, объекта, если он хранится в контейнере. Ассоциативные контейнеры используются в языках программирования как шаблоны классов.
Контейнерные абстрактные типы данных включают:
Общие структуры данных, используемые для реализации этих абстрактных типов, включают:
Наборы инструментов для виджетов также используйте контейнеры, которые представляют собой специальные виджеты для группировки других виджетов, таких как окна, панели. Помимо своих графических свойств, они имеют тот же тип поведения, что и классы контейнеров, поскольку они хранят список своих дочерних виджетов и позволяют добавлять, удалять или извлекать виджеты среди своих дети.