Контейнерные классы С++

Данный раздел представляет собой справочник по контейнерным классам 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 Удаляет заданный объект указателя. Он удаляется в соответствии с текущим владельцем.
FindMember Возвращает указатель на заданный объект или 0.
FirstThat См. TMBagAsVector::FirstThat.
Flush Удаляет из мультимножества все элементы, не уничтожая его.
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 ++ Перемещается к следующему объекту в дереве и возвращает объект, который был текущим перед перемещением (постинкрементация) или после (прединкрементация).

Назад | Содержание | Вперед