Контейнер (абстрактный тип данных) - Container (abstract data type)

В Информатика, а контейнер это учебный класс, а структура данных,[1][2] или абстрактный тип данных (ADT), экземпляры которого являются коллекциями других объектов. Другими словами, они хранят объекты организованным образом с соблюдением определенных правил доступа. Размер контейнера зависит от количества содержащихся в нем объектов (элементов). Базовые (унаследованные) реализации различных типов контейнеров могут различаться по размеру и сложности и обеспечивать гибкость в выборе правильной реализации для любого заданного сценария.

Назначение и свойства

Контейнеры можно охарактеризовать следующими тремя свойствами:

  • доступ, то есть способ доступа к объектам контейнера. В случае массивов доступ осуществляется с помощью индекса массива. В случае стеков доступ осуществляется в соответствии с LIFO (последний пришел - первый ушел), а в случае очередей - в соответствии с ФИФО порядок (первый пришел - первый ушел);
  • место хранения, то есть способ хранения объектов контейнера;
  • обход, то есть способ обхода объектов контейнера.

Ожидается, что классы-контейнеры будут реализовывать методы для выполнения следующих действий:

  • создать пустой контейнер (конструктор);
  • вставлять предметы в контейнер;
  • удалять объекты из контейнера;
  • удалить все объекты в контейнере (очистить);
  • получить доступ к объектам в контейнере;
  • доступ к количеству объектов в контейнере (count).

Иногда контейнеры реализуются вместе с итераторы.

Типы

Контейнеры можно разделить на одноразовые контейнеры или же ассоциативные контейнеры.

Однозначные контейнеры хранят каждый объект независимо. Доступ к объектам можно получить напрямую или с помощью итератор.

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

К абстрактным типам данных контейнера относятся:

Общие структуры данных, используемые для реализации этих абстрактных типов, включают:

Графические контейнеры

Наборы инструментов для виджетов также используйте контейнеры, которые являются специальными виджеты для группировки других виджетов, например окна, панели. Помимо своих графических свойств, они имеют тот же тип поведения, что и классы-контейнеры, поскольку они хранят список своих дочерних элементов. виджеты, и разрешить добавление, удаление или получение виджеты среди своих детей.

Смотрите также

Рекомендации

  1. ^ Пол Э. Блэк (ред.), Запись для структура данных в Словарь алгоритмов и структур данных. нас Национальный институт стандартов и технологий.15 декабря 2004 г. По состоянию на 4 октября 2011 г.
  2. ^ Вход структура данных в Британская энциклопедия (2009) Онлайн запись Доступ 4 октября 2011 г.

внешняя ссылка