Класс CArray
Поддерживает массивы, как массивы c#, но может динамически уменьшить и увеличиваться по мере необходимости.
template < class TYPE, class ARG_TYPE = const TYPE& >
class CArray :
public CObject
Параметры
TYPE
Параметр шаблона, указывающее тип объектов, содержащихся в массиве.TYPE параметр, который возвращается CArray.ARG*_*TYPE
Параметр шаблона, указывающее тип аргумента, который используется для доступа к объектам, хранящиеся в массиве.Часто ссылка на TYPE.ARG_TYPE параметр, который передается CArray.
Члены
Открытые конструкторы
Имя |
Описание |
---|---|
Создает пустой массив. |
Открытые методы
Имя |
Описание |
---|---|
Добавляет элемент в конец массива; растет массив, если требуемый. |
|
Добавляет другой массив в массив. растет массив, если обязательный |
|
Копирует другой массив в массив. растет массив, если требуемый. |
|
Возвращает временной ссылку на указатель элемента в массиве. |
|
Высвобождает всю неиспользуемую память над текущим границей. |
|
Возвращает значение по заданному индексу. |
|
Получает число элементов в данном массиве. |
|
Разрешает доступ к элементам массива.Может быть NULL. |
|
Получает число элементов в данном массиве. |
|
Возвращает максимальный допустимый индекс. |
|
Вставляет элемент (или все элементы в других массив) по указанному индексу. |
|
Определяет, является ли массив пуст. |
|
Удаляет все элементы из этого массива. |
|
Удаляет элемент по указанному индексу. |
|
Задает значение для данного индекса; массив не разрешенный увеличиваться. |
|
Задает значение для данного индекса; растет массив, если требуемый. |
|
Задает количество элементов, которое должно содержаться в этом массиве. |
Открытые операторы
Имя |
Описание |
---|---|
Получает или задает элемент по указанному индексу. |
Заметки
Индекс массива, начиная всегда в позиции 0.Можно выбрать, следует ли разрешить исправить границы или массив, чтобы развернуть при добавлении элементов за границами текущего.Память выделена сопредельн на границе, даже если некоторые элементы равны null.
Примечание |
---|
Большинство методов, которые изменяют размер объекта CArray или добавляют элементы к нему использование memcpy_s к элементам перемещения.Это проблемы, так как memcpy_s не совместим с любыми объектами, которые требуют вызова конструктора.Если элементы в CArray не совместимы с memcpy_s, необходимо создать новое CArray нужного размера.После этого следует использовать CArray::Copy и CArray::SetAt для заполнения новый массив, так как эти методы используют оператор присваивания вместо memcpy_s. |
Как и в случае с массивом c время выборки для элемента индексированного CArray постоянным и не зависит от размера массива.
Совет |
---|
Перед использованием массива, используйте SetSize чтобы установить его размер и выделить память для него.Если не используется SetSize, то добавление элементов в массив часто вызывают быть reallocated и скопировать его.Частое переразмещение и копирование неработоспособны и может разделить память. |
Если требуется дамп отдельных элементов в массиве необходимо установить глубину объекта CDumpContext значение 1 или больше.
Некоторые функции-члены этого класса вызывают глобальные вспомогательные функции, необходимые для настройки для большинства польз класса CArray.См. раздел Вспомогательные объекты класса коллекции в разделе "Макросы MFC и глобальные переменные".
Источник класса массива как вывод списка.
Дополнительные сведения об использовании CArray см. в статье коллекции.
Иерархия наследования
CArray
Требования
Header: afxtempl.h