Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VC_Lect.doc
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
15 Мб
Скачать
☆

Конструкторы

CArray() Создает пустой массив.

Атрибуты

int GetSize() const;

Возвращает фактическое число элементов массива.

int GetUpperBound() const;

Возвращает максимальный допустимый индекс (на единицу меньше GetSize()).

void SetSize(int nNewSize, int nGrowBy =-1); throw(CMemoryException );

Задает число элементов массива.

nNewSize – новое число элементов массива;

nGrowBy – минимальное число элементов, на которое увеличивается размер массива в случае необходимости. Если nGrowBy ==-1, то MFC сама оптимизирует распределение памяти.

Примечания. Задает размер нового или существующего массива. Если новый размер меньше текущего, то массив усекается и вся неиспользуемая память освобождается.

Эту функцию нужно использовать для задания размера массива перед его использованием. Если Вы ее не используете, то включение элементов в массив с помощью Add() вызывает постоянное перераспределение памяти, что вызывает ее неэффективное использование и фрагментирование.

Обработка

void FreeExtra( );

Освобождает всю неиспользуемую память за верхним индексом массива. Функция не влияет на число элементов массива.

void RemoveAll( );

Удаляет все элементы массива. Может применяться к пустому массиву.

Доступ к элементам

TYPE GetAt( int nIndex ) const;

Возвращает значение с указанным индексом. Попытка извлечения несуществующего элемента вызовет ошибку.

void SetAt( int nIndex, ARG_TYPE newElement );

Присваивание нового значения newElement элементу массива с номером nIndex. Использование этой функции не вызывает автоматического увеличения размера массива – используйте для этого SetAtGrow().

TYPE& ElementAt( int nIndex );

Возвращает временную ссылку на элемент с номером nIndex. Она используется для перегрузки оператора присваивания.

const TYPE* GetData( ) const; TYPE* GetData( );

Разрешает непосредственный доступ к элементам массива, возвращая указатель на массив. Хотя прямой доступ к элементам и эффективен, такой подход чреват ошибками.

Увеличение размера массива

void SetAtGrow(int nIndex,ARG_TYPE newElement); throw( CMemoryException );

Присваивание нового значения newElement элементу массива с номером nIndex. Использование этой функции вызывает, при необходимости, автоматическое увеличение размера массива.

int Add( ARG_TYPE newElement ); throw( CMemoryException );

Добавляет новый элемент в конец массива. Использование этой функции вызывает, при необходимости, автоматическое увеличение размера массива.

int Append( const CArray & src );

Добавляет массив src к существующему и возвращает индекс первого добавленного элемента. Использование этой функции вызывает, при необходимости, автоматическое увеличение размера массива.

void Copy( const CArray & src );

Копирует массив src в существующий. При необходимости увеличивает память для текущего массива. Новый массив заменяет существующий. Функция не совобождает память, если таковая появляется.

Вставки и удаления

void InsertAt( int nIndex, ARG_TYPE newElement, int nCount = 1 ); throw( CMemoryException );

void InsertAt( int nStartIndex, CArray* pNewArray ); throw( CMemoryException );

Вставляет новый элемент newElement в позицию массива с номером nIndex или все элементы массива pNewArray. Первая функция вставляет один элемент или nCount копий элемента в указанную позицию массива, а вторая перегруженная версия функции вставляет массив. При вставке все «правые» элементы массива сдвигаются.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]