Данный раздел представляет собой справочник по контейнерным
классам Borlan C++. Каждый контейнерный класс принадлежит к одной
из следующих групп:
Группа
Файл заголовка
Массивы.
arrays.h
Ассоциации.
assoc.h
Мультимножества.
bags.h
Двоичные деревья.
binimp.h
Двунаправленные очереди.
deques.h
Словарь.
dict.h
Двусвязный список.
dlistimp.h
Таблица хеширования.
hashimp.h
Списки.
listimp.h
Очереди.
queues.h
Множества.
sets.h
Стеки.
stacks.h
Векторы
vectimp.h
Библиотека классов container содержит классы для часто используемых структур данных (списки, стеки, очереди и т.д.). Классы организованы в соответствии с иерархией классов, что позволяет
иметь высокую степень модульности благодаря свойствам наследования и полиморфизма. Вы можете использовать эти классы в том виде,
как они есть, либо расширять и дополнять их, получая объектно-ориентированные программные продукты, подходящие для ваших задач.
Шаблон TMArrayVector (arrays.h)
Реализует управляемый массив объектов типа T, использующий в
качестве основы вектор. Для типа T требуется операция ==.
Функции-элементы
Constructor
Создает с заданными верхней/нижней границей
и приростом delta.
Add
Добавляет объект T по следующему индексу в
конце массива. Добавление элемента перед верхней границей приводит к условию переполнения. В этом случае, если delta не равно 0, массив расширяется. Иначе Add возвращает 0, и Add не может добавить объект.
AddAt
Добавляет объект по заданному индексу. Если
индекс занят, то объект перемещается на расстояние, достаточное для включения добавленного объекта. При выходе за верхнюю границу массив расширяется на delta. Если delta = 0,
то AddAt в этой ситуации дает ошибку.
ArraySize
Возвращает текущее число выделенных ячеек.
Destroy
Удаляет объект по заданному индексу. Объект
будет уничтожаться.
Detach
Удаляет объект в заданной позиции или первый
объект, который совпадает с заданным.
FirstThat
Возвращает указатель на первый объект в массиве, который удовлетворяет заданному условию. Вы можете передать указатель на функцию
проверки.
Flush
Удаляет все элементы из массива, не уничтожая массив. Дальнейшие действия с ними определяются статусом владельца.
ForEach
Создает внутренний итератор для выполнения
для каждого элемента массива заданной функции. Аргумент позволяет передать этой функции
произвольные данные.
GetItemsin-Container
Возвращает число элементов в массиве.
HasMember
Возвращает 1, если данный объект найден в массиве, и 0 в противном случае.
IsEmpty
Возвращает 1, если массив не содержит элементов, и 0 в противном случае.
IsFull
Возвращает 1, если массив заполнен, или 0 в противном случае. Массив заполнен, если delta не равно 0, и число элементов в контейнере равно значению, возвращаемому ArraySize.
LastThat
Возвращает указатель на последний объект в
массиве, удовлетворяющий заданному условию.
Вы можете задать функцию проверки, возвращающую True для заданного условия. Ей можно передавать произвольные аргументы. Если объект не отвечает условию, возвращается 0. LastThat создает свой собственный итератор.
LowerBound
Возвращает нижнюю границу массива.
UpperBound
Возвращает текущую верхнюю границу массиву.
BoundBase
Настраивает векторы, начинающиеся с 0, на не
начинающиеся с нуля массивы.
Find
Находит заданный объект и возвращает индекс объекта. В противном случае возвращается INT_MAX.
Grow
Увеличивает размер массива в любом направлении, чтобы заданный индекс был допустимым.
InsertEntry
Создает объект и заносит его по указанному
индексу, перемещая записи на 1 после этого
индекса.
ItemAt
Возвращает копию объекта, записанного в ячейке с заданным индексом.
Reallocate
Если delta = 0, возвращает 0. В противном
случае пытается создать новый массив заданного размера (настраиваемый вверх до ближайшего кратного delta). Существующий массив копируется в расширенный массив, а затем удаляется. В массиве указателей записи для каждого неиспользуемого элемента обнуляется. Передаваемое смещение определяет размещение в новом векторе. Это необходимо, когда массив должен расширяться вниз.
RemoveEntry
Удаляет элемент по заданному индексу в массиве, расположенные выше элементы циклически
копируются на позицию ниже.
SetData
Заменяет элемент по заданному в массиве индексу.
ZeroBase
Возвращает позицию относительно:
lowerbound(loc - lowerbound)
где lowerbound - нижняя граница, а loc - заданный индекс.
operator[]
Возвращает ссылку на элемент с заданным индексом.
Шаблон TMArrayAsVectorIterator (arrays.h)
Реализует объект итератора для перебора объектов TMArrayAsVector.
Функции-элементы
Constructor
Создает объект итератора для перебора объектов TMArrayAsVector.
Current
Возвращает текущий объект.
Restart
Возобновляет итерацию с начала или с заданного диапазона.
operator ++
Перемещается к следующему объекту и возвращает объект, который был текущим перед перемещением или после перемещения.
operator int
Для тестирования оставшихся в итераторе объектов конвертирует итератор в целое значение (если в итераторе ничего не осталось, то получается 0).
Шаблон TArrayAsVector (arrays.h)
Реализует массив объектов типа T, используя в качестве основы реализации вектор. Для управления памятью используется TStandardAllocator.
Функции-элементы
Constructor
Создает массив с заданными верхней и нижней
границей и расширением delta.
Шаблон TArrayAsVectorIterator (arrays.h)
Реализует объект итератора для перебора объектов TArrayAsVector. Элементы см. в TMArrayAsVectorIterator.
Функции-элементы
Constructor
Создает объект итератора для перебора объектов TArrayAsVector.
Шаблон TMIArrayAsVector (arrays.h)
Реализует управляемый косвенный массив объектов типа T, используя в качестве основы реализации вектор.
Функции-элементы
Constructor
Создает косвенный массив заданными верхней и
нижней границей и расширением delta.
Add
Добавляет по следующему доступному индексу в
конце массива указатель на объект T. Добавление элемента перед верхней границей приводит
к условию переполнения. В этом случае, если delta не равно 0, массив расширяется. Иначе
Add возвращает 0, и Add не может добавить объект.
AddAt
Добавляет объект T по заданному индексу. Если
индекс занят, то объект перемещается на расстояние, достаточное для включения добавленного объекта. При выходе за верхнюю границу
массив расширяется на delta. Если delta = 0,
то AddAt в этой ситуации дает ошибку.
ArraySize
Возвращает текущее число выделенных ячеек.
Destroy
Удаляет объект по заданному индексу. Объект
будет удаляться.
Detach
Удаляет объект с указателем по заданному индексу или удаляет заданный указатель. В зависимости от того, кто является владельцем объекта, будет происходить его удаление.
FirstThat
Возвращает указатель на первый элемент в массиве, который удовлетворяет заданному условию. Вы можете передать указатель на функцию
проверки.
Find
Находит заданный указатель на объект и воз вращает индекс.
Flush
Удаляет все элементы из массива, не уничтожая массив. Дальнейшие действия с ними определяются статусом владельца.
ForEach
Создает внутренний итератор для выполнения
для каждого элемента массива заданной функции. Аргумент позволяет передать этой функции произвольные данные.
GetItemsin-Container
Возвращает число элементов в массиве.
HasMember
Возвращает 1, если данный объект найден в
массиве, и 0 в противном случае.
IsEmpty
Возвращает 1, если массив не содержит элементов, и 0 в противном случае.
IsFull
Возвращает 1, если массив заполнен, или 0 в
противном случае. Массив заполнен, если delta не равно 0, и число элементов в контейнере
равно значению, возвращаемому ArraySize.
LastThat
Возвращает указатель на последний объект в
массиве, удовлетворяющий заданному условию. Вы можете задать функцию проверки, возвращающую True для заданного условия. Ей можно передавать произвольные аргументы. Если объект не отвечает условию, возвращается 0. LastThat создает свой собственный итератор, так что вы можете интерпретировать ее как функцию поиска.
LowerBound
Возвращает нижнюю границу массива.
UpperBound
Возвращает текущую верхнюю границу массиву.
BoundBase
Настраивает векторы, начинающиеся с 0, на не
начинающиеся с нуля массивы.
Grow
Увеличивает размер массива в любом направлении, чтобы заданный индекс был допустимым.
InsertEntry
Создает объект и заносит его по указанному
индексу.
ItemAt
Возвращает копию объекта, записанного в ячей ке с заданным индексом.
Reallocate
Если delta = 0, возвращает 0. В противном
случае пытается создать новый массив заданного размера (настраиваемый вверх до ближайшего кратного delta). Существующий массив копируется в расширенный массив, а затем удаляется. В массиве указателей записи для каждого неиспользуемого элемента обнуляется. Передаваемое смещение определяет размещение в новом векторе. Это необходимо, когда массив должен расширяться вниз.
RemoveEntry
Удаляет элемент по заданному индексу в массиве, расположенные выше элементы циклически копируются на позицию ниже (массив уменьшается на 1 элемент).
SetData
Заменяет элемент по заданному в массиве индексу.
SqueezeEntry
Удаляет элемент в заданной позиции, уменьшая
массив на 1 элемент. Расположенные выше элементы копируются на позицию вниз, а текущий
элемент теряется.
ZeroBase
Возвращает позицию относительно:
lowerbound(loc - lowerbound)
где lowerbound - нижняя граница, а loc - заданный индекс.
operator[]
Возвращает ссылку на элемент с заданным индексом.
Шаблон TMIArrayAsVectorIterator (arrays.h)
Реализует объект итератора для перебора объектов TMIArrayAsVector. Базируется на TMVectorIteratorImp.
Функции-элементы
Constructor
Создает объект итератора для перебора объектов TMArrayAsVector.
Current
Возвращает текущий объект.
Restart
Возобновляет итерацию с начала или с заданного диапазона.
operator ++
Перемещается к следующему объекту и возвращает объект, который был текущим перед перемещением (постинкрементация).
Шаблон TIArrayAsVector (arrays.h)
Реализует косвенный массив объектов типа T, используя в качестве основы реализации вектор. Для управления памятью используется TStandardAllocator. Элементы см. в TMIArrayAsVector.
Функции-элементы
Constructor
Создает массив с заданными верхней и нижней
границей расширением delta.
Шаблон TIArrayAsVectorItetator (arrays.h)
Реализует объект итератора для перебора объектов TIArrayAsVector. Для управления памятью использует TSrandarsAllocator.
Элементы и операции см. в TMIArrayAsVectorIterator.
Функции-элементы
Constructor
Создает объект итератора для перебора объек тов TIArrayAsVector.
Шаблон TMSArrayAsVector (arrays.h)
Реализует отсортированный массив объектов типа T, используя
в качестве основы реализации вектор. За исключением AddAt все
функции-элементы наследуются из TMArrayAsVector.
Функции-элементы
Constructor
Создает массив с заданными верхней и нижней
границей и расширением delta. Для типа T требуется операция <.
Шаблон TMSArrayAsVectorItetator (arrays.h)
Реализует объект итератора для перебора объектов TMSArrayAsVector. Элементы и операции см. в TMArrayAsVectorIterator.
Функции-элементы
Constructor
Создает объект итератора для перебора объек тов TSArrayAsVector.
Шаблон TSArrayAsVector (arrays.h)
Реализует отсортированный массив объектов типа T, используя
в качестве основы реализации вектор. За исключением AddAt все
функции-элементы наследуются из TMArrayAsVector.
Функции-элементы
Constructor
Создает массив с заданными верхней и нижней
границей и расширением delta. Для типа T требуется операция <.
Шаблон TSArrayAsVectorItetator (arrays.h)
Реализует объект итератора для перебора объектов TSArrayAsVector. Элементы и операции см. в TMArrayAsVectorIterator.
Функции-элементы
Constructor
Создает объект итератора для перебора объектов TSArrayAsVector.
Шаблон TISArrayAsVector (arrays.h)
Реализует косвенный отсортированный массив объектов типа T,
используя в качестве основы реализации вектор. Функции-элементы
см. в TMIArrayAsVector.
Функции-элементы
Constructor
Создает массив с заданными верхней и нижней
границей и расширением delta.
Шаблон TISArrayAsVectorItetator (arrays.h)
Реализует объект итератора для перебора объектов TISArrayAsVector. Элементы и операции см. в TMArrayAsVectorIterator.
Функции-элементы
Constructor
Создает объект итератора для перебора объектов TISArrayAsVector.
Шаблон TMISArrayAsVector (arrays.h)
Реализует управляемый косвенный отсортированный массив объектов типа T, используя в качестве основы реализации вектор.
Функции-элементы см. в TMIArrayAsVector.
Функции-элементы
Constructor
Создает массив с заданными верхней и нижней
границей и расширением delta.
Шаблон TMDAssociation (assoc.h)
Реализует управляемую ассоциацию, связывая непосредственный
ключ K с непосредственным (прямым) значением L. Предполагается,
что K имеет функцию-элемент HashValue, или что существует глобальная функция со следующим прототипом:
unsigned HashValue( K & );
K должно также иметь допустимую операцию ==. Класс A представляет администратор хранения, заданный пользователем.
Функции-элементы
Constructor
Строит объект, который связывает копию объекта ключа с копией объекта значения.
HashValue
Возвращает для ключа значение хеширования.
Key
Возвращает KeyData.
Value
Возвращает ValueData.
operator ==
Проверяет равенство ключей.
Шаблон TDDAssociation (assoc.h)
Стандартная ассоциация (непосредственный ключ, непосредственное значение). Реализует ассоциацию, связывая непосредственный ключ K с непосредственным (прямым) значением L. Предполагается, что K имеет функцию-элемент HashValue, или что существует
глобальная функция со следующим прототипом:
unsigned HashValue( K & );
K должно также иметь допустимую операцию ==. Элементы см. в
TMDDAssociation.
Функции-элементы
Constructor
Строит объект, который связывает объект ключа с объектом значения.
Шаблон TDDAssociation (assoc.h)
Реализует управляемую ассоциацию, связывая косвенный ключ K
с косвенным значением L. Предполагается, что K имеет функцию-элемент HashValue, или что существует глобальная функция со следующим прототипом:
unsigned HashValue( K & );
K должно также иметь допустимую операцию ==. Класс A представляет администратор хранения, заданный пользователем.
Функции-элементы
Constructor
Заданный по умолчанию конструктор или конструктор, который строит объект, связывающий объект ключа с объектом значения.
HashValue
Возвращает для ключа значение хеширования.
Key
Возвращает KeyData.
Value
Возвращает ValueData.
operator ==
Проверяет равенство ключей.
Шаблон TDIAssociation (assoc.h)
Реализует ассоциацию, связывая непосредственный ключ K с непосредственным (прямым) значением L. Предполагается, что K имеет
функцию-элемент HashValue, или что существует глобальная функция
со следующим прототипом:
unsigned HashValue( K & );
K должно также иметь допустимую операцию ==. Элементы см. в
TMDIAssociation.
Функции-элементы
Constructor
Строит объект, который связывает объект ключа с объектом значения.
Шаблон TMIDAssociation (assoc.h)
Реализует управляемую ассоциацию, связывая косвенный ключ K
с косвенным значением L. Предполагается, что K имеет функцию-элемент HashValue, или что существует глобальная функция со следующим прототипом:
unsigned HashValue( K & );
K должно также иметь допустимую операцию ==. Класс A представляет администратор хранения, заданный пользователем.
Элементы данных
KeyData
Класс, переданный в шаблон пользователем.
ValueData
Значение класса, переданного в шаблоне пользователем.
Функции-элементы
Constructor
Заданный по умолчанию конструктор или конструктор, который строит объект, связывающий объект ключа с объектом значения.
HashValue
Возвращает для ключа значение хеширования.
Key
Возвращает указатель на ключ.
Value
Возвращает копию данных.
operator ==
Проверяет равенство ключей.
Шаблон TIDAssociation (assoc.h)
Реализует ассоциацию, связывая косвенный ключ K с косвенным
значением L. Предполагается, что K имеет функцию-элемент HashValue, или что существует глобальная функция со следующим прототипом:
unsigned HashValue( K & );
K должно также иметь допустимую операцию ==. Элементы см. в
TMDIAssociation.
Constructor
Строит объект, который связывает объект ключа с объектом значения.
Шаблон TMIIAssociation (assoc.h)
Реализует управляемую ассоциацию, связывая косвенный ключ K
с косвенным значением L. Предполагается, что K имеет функцию-элемент HashValue, или что существует глобальная функция со следующим прототипом:
unsigned HashValue( K & );
K должно также иметь допустимую операцию ==. Класс A представляет администратор хранения, заданный пользователем.
Функции-элементы
Constructor
Заданный по умолчанию конструктор или конструктор, который строит объект, связывающий объект ключа с объектом значения.
HashValue
Возвращает для ключа значение хеширования.
Key
Возвращает указатель на ключ.
Value
Возвращает указатель на данные.
operator ==
Проверяет равенство ключей.
Шаблон TIIAssociation (assoc.h)
Реализует управляемую ассоциацию, связывая косвенный ключ K
с косвенным значением L. Предполагается, что K имеет функцию-элемент HashValue, или что существует глобальная функция со следующим прототипом:
unsigned HashValue( K & );
K должно также иметь допустимую операцию ==. Элементы см. в
TMIIAssociation.
Функции-элементы
Constructor
Заданный по умолчанию конструктор или конструктор, который строит объект, связывающий объект ключа с объектом значения.
Шаблон TMBagAsVector (bags.h)
Реализует управляемое мультимножество объектов T, используя
в качестве основы реализации вектор. В отличие от множеств, мультимножества могут содержать дублируемые объекты.
Функции-элементы
Constructor
Строит управляемое пустое мультимножество с
заданным числом элементов, которые оно может содержать.
Add
Добавляет к мультимножеству заданный объект.
Detach
Удаляет заданный объект. Он удаляется в соответствии с текущим владельцем.
FindMember
Возвращает указатель на заданный объект или 0.
Flush
Удаляет из мультимножества все элементы, не уничтожая его.
ForEach
Создает внутренний итератор для выполнения
для каждого элемента мультимножества заданной функции. Аргумент позволяет передать этой функции произвольные данные.
GetItemsin-Container
Возвращает число элементов в мультимножестве.
HasMember
Возвращает 1, если данный объект найден в массиве, и 0 в противном случае.
IsEmpty
Возвращает 1, если мультимножество не содержит элементов, и 0 в противном случае.
IsFull
Возвращает 0.
Find
Возвращает указатель на данный объект, если он найден, или 0.
Шаблон TMBagAsVectorIterator (bags.h)
Реализует итератор объекта для перебора объектов TMBagAsVector. Элементы см. в TMArrayAsVectorIterator.
Функции-элементы
Constructor
Строит объект, выполняющий итерацию по всем
объектам TMBagAsVector.
Шаблон TBagAsVector (bags.h)
Реализует множество объектов типа T, используя в качестве
основы реализации вектор. Для управления памятью используется
TStandardAllocator. Элементы описываются в TMBagAsVector.
Функции-элементы
Constructor
Строит пустое мультимножество, представляющее
число элементов, которое оно может содержать.
Шаблон TMBagAsVectorIterator (bags.h)
Реализует итератор объекта для перебора объектов TBagAsVector. Для управления памятью используется TStandardAllocator. Элементы описываются в TMArrayAsVectorIterator.
Функции-элементы
Constructor
Строит объект, выполняющий итерацию по всем
объектам TBagAsVector.
Шаблон TMIBagAsVector (bags.h)
Реализует множество управляемых объектов типа T, используя в
качестве основы реализации вектор.
Функции-элементы
Constructor
Строит пустое управляемое косвенное мультимножество с заданным числом потенциальных элементов.
Add
Добавляет заданный объект указателя на мультимножество.
Detach
Удаляет заданный объект указателя. Он удаляется в соответствии с текущим владельцем.
Удаляет из мультимножества все элементы, не
уничтожая его.
ForEach
Создает внутренний итератор для выполнения
для каждого элемента мультимножества заданной функции. Аргумент позволяет передать этой функции произвольные данные.
GetItemsin-Container
Возвращает число объектов в мультимножестве.
HasMember
Возвращает 1, если данный объект найден в
массиве, и 0 в противном случае.
IsEmpty
Возвращает 1, если мультимножество не содержит элементов (пустое), и 0 в противном случае.
IsFull
Возвращает 0.
LastThat
Возвращает указатель на последний объект, который удовлетворяет заданному условию. Вы можете задать функцию проверки условия и передать ей произвольные аргументы.
Шаблон TMIBagAsVectorIterator (bags.h)
Реализует итератор объекта для перебора объектов TMIBagAsVector. Элементы описываются в TMArrayAsVectorIterator.
Функции-элементы
Constructor
Строит объект, выполняющий итерацию по всем
объектам TMIBagAsVector.
Шаблон TIBagAsVector (bags.h)
Реализует множество объектов типа T, используя в качестве
основы реализации вектор. Для управления памятью используется
TStandardAllocator. Элементы описываются в TMIBagAsVector.
Функции-элементы
Constructor
Строит пустое управляемое косвенное мультимножество, представляющее число элементов, которое оно может содержать.
Шаблон TIBagAsVectorIterator (bags.h)
Реализует итератор объекта для перебора объектов TIBagAsVector. Для управления памятью используется TStandardAllocator. Элементы описываются в TMBagAsVector. Элементы описываются в TMArrayAsVectorIterator.
Функции-элементы
Constructor
Строит объект, выполняющий итерацию по всем
объектам TMIBagAsVector.
Шаблон TBinarySearchTreeImp (binimp.h)
Реализует несбалансированное двоичное дерево. Класс T должен
иметь операции < и == и заданный по умолчанию конструктор.
Функции-элементы
Add
Создает новый узел двоичного дерева и включает в него копию заданного объекта.
Detach
Удаляет из дерева узел, содержащий заданный
элемент.
Find
Возвращает указатель на узел, содержащий заданный элемент.
Flush
Устраняет все элементы из дерева, удаляя их или нет в соответствии с переданным параметром.
ForEach
Создает внутренний итератор, который для каждого элемента в контейнере выполняет заданную функцию (этой функции можно передать произвольные данные).
GetItemsIn-Container
Возвращает число элементов в дереве.
Parent::IsEmpty
Возвращает 1 для пустого дерева, иначе - 0.
EqualTo
Проверяет равенство ( эквивалентность) двух
узлов.
LessThan
Проверяет, что первый из заданных узлов меньше второго.
DeleteNode
Удаляет узел.
Шаблон TBinarySearchTreeIteratorImp (binimp.h)
Реализует итератор, выполняющий перебор по всем объектам
TBinarySearchTreeImp.
Функции-элементы
Constructor
Строит итератор, выполняющий перебор по всем
объектам TBinarySearchTreeImp.
Current
Возвращает текущий объект.
Restart
Возобновляет итерацию с начала дерева.
operator int
Преобразует итератор в целое значение для
проверки наличия объектов в итераторе. Если в итераторе ничего не осталось, конвертируется в 0.
operator ++
Перемещается к следующему объекту в дереве и
возвращает объект, который был текущим перед перемещением (постинкрементация) или после (прединкрементация).
Шаблон TIBinarySearchTreeImp (binimp.h)
Реализует косвенное несбалансированное двоичное дерево.
Класс T должен иметь операции < и == и заданный по умолчанию
конструктор.
Функции-элементы
Add
Создает новый узел двоичного дерева и включает в него указатель на заданный объекта.
Detach
Удаляет из дерева узел, содержащий заданный
элемент.
Find
Возвращает указатель на узел, содержащий за-
данный указатель на элемент.
Flush
Устраняет все элементы из дерева, удаляя их
или нет в соответствии с переданным параметром.
ForEach
Создает внутренний итератор, который для каждого элемента в контейнере выполняет заданную функцию (этой функции можно передать произ-
вольные данные).
GetItemsIn-Container
Возвращает число элементов в дереве.
Parent::IsEmpty
Возвращает 1 для пустого дерева, иначе - 0.
EqualTo
Проверяет равенство ( эквивалентность) двух
узлов.
LessThan
Проверяет, что первый из заданных узлов меньше второго.
DeleteNode
Удаляет узел.
Шаблон TIBinarySearchTreeIteratorImp (binimp.h)
Реализует итератор, выполняющий перебор по всем объектам
TIBinarySearchTreeImp.
Функции-элементы
Constructor
Строит итератор, выполняющий перебор по всем
объектам TIBinarySearchTreeImp.
Current
Возвращает указатель на текущий объект.
Restart
Возобновляет итерацию с начала дерева.
operator int
Преобразует итератор в целое значение для
проверки наличия объектов в итераторе. Если в итераторе ничего не осталось, конвертируется в 0.
operator ++
Перемещается к следующему объекту в дереве и
возвращает объект, который был текущим перед
перемещением (постинкрементация) или после (прединкрементация).