Функция GetUpperBound () и GetLowerBound () для массива
Кто-нибудь может рассказать, что делают две функции? Они принимают целочисленный аргумент, который считается размерностью. Но как значение этого целого меняет результат?
Ниже приведен пример, который я выполнил.
Любая идея, почему GetLowerBound() всегда возвращает 0? Если это всегда возвращает 0, то почему мы нужно вызвать этот метод?
3 ответа
Возможно, некоторые примеры помогут вам понять эту тему.
Мы используем GetUpperBound() для определения верхней границы массива для заданной размерности, например:
обычно GetLowerBound() возвращает 0, поскольку по умолчанию массивы основаны на нуле, но в некоторых редких случаях это не так:
Integer параметр GetUpper/LowerBound() указывает размерность.
Кто-нибудь может рассказать, что делают две функции?
Это написано на их страницах MSDN. Они получают индекс первого/последнего элемента указанного измерения в массиве. Посмотрите Array.GetUpperBound и Array.GetLowerBound
Они принимают целочисленный аргумент, который считается размерностью.
Любая идея, почему GetLowerBound() всегда возвращает 0? Если это всегда возвращает 0, то почему нам нужно вызвать этот метод?
В массиве каждое измерение может иметь свои конкретные нижние и верхние границы. Таким образом, эти методы могут создавать разные результаты для каждого измерения массива.
GetUpperBound() and GetLowerBound() function for array
Can anyone please tell what does the two functions do? They take an integer argument which is told to be dimension. But how does the value of this integer changes the output?
Below is an example which I ran.
Any idea why GetLowerBound() is always returning 0? If this always returns 0 then why do we need to call this method?
3 Answers 3
May be some examples make the topic clear for you
We use GetUpperBound() to find out the upper bound of an array for given dimension, like that:
usually, GetLowerBound() returns 0, since arrays are zero-based by default, but in some rare cases they are not:
Typical loop using GetLowerBound and GetUpperBound is
The integer parameter to GetUpper/LowerBound() specifies the dimension.
Can anyone please tell what does the two functions do?
It is written in their MSDN pages. They gets the index of the first / last element of the specified dimension in the array. Take a look Array.GetUpperBound and Array.GetLowerBound
They take an integer argument which is told to be dimension.
Any idea why GetLowerBound() is always returning 0? If this always returns 0 then why do we need to call this method?
In an array, every dimension can have their specific lower and uppor bounds. So, this methods can create different results for each dimension of array.
Класс CArray
Поддерживает массивы, которые подобны массивам C, но могут динамически уменьшаться и увеличиваться по мере необходимости.
Синтаксис
Параметры
Члены
Открытые конструкторы
Открытые методы
Открытые операторы
Комментарии
Индексы массивов всегда начинаются в позиции 0. Вы можете решить, следует ли исправить верхнюю границу или разрешить массиву расширять при добавлении элементов после текущей границы. Память выделяется непрерывно с верхней границей, даже если некоторые элементы имеют значение null.
Как и в случае с массивом C, время доступа для CArray индексированного элемента является константой и не зависит от размера массива.
Если требуется дамп отдельных элементов в массиве, необходимо задать CDumpContext для глубины объекта значение 1 или больше.
Некоторые функции элементов этого класса вызывают глобальные вспомогательные функции, которые необходимо настроить для большинства случаев использования CArray класса. См. раздел вспомогательные методы класса коллекций разделов в разделе макросы и глобальные классы MFC.
Наследование класса массива подобно порождению списка.
Дополнительные сведения об использовании CArray см. в статье CArray статей.
Иерархия наследования
Требования
Заголовок
CArray::Add
Добавляет новый элемент в конец массива, увеличивая массив на 1.
Параметры
ARG_TYPE
Параметр шаблона, указывающий тип аргументов, ссылающихся на элементы в этом массиве.
newElement
Элемент, добавляемый в этот массив.
Возвращаемое значение
Индекс добавленного элемента.
Комментарии
Если SetSize используется nGrowBy значение больше 1, может быть выделена память дополнительной памяти. Однако верхняя граница будет увеличена только до 1.
Пример
CArray::Append
Вызовите эту функцию члена, чтобы добавить содержимое одного массива в конец другого.
Параметры
src
Источник элементов, добавляемых в массив.
Возвращаемое значение
Индекс первого добавленного элемента.
Комментарии
Массивы должны быть одного типа.
При необходимости Append может выделить дополнительный объем памяти для размещения элементов, добавляемых в массив.
Пример
CArray::CArray
Создает пустой массив.
Комментарии
Массив растет по одному элементу за раз.
Пример
CArray::Copy
Используйте эту функцию члена, чтобы скопировать элементы одного массива в другой.
Параметры
src
Источник элементов, копируемых в массив.
Комментарии
Вызовите эту функцию члена, чтобы перезаписать элементы одного массива элементами другого массива.
Copy не освобождает память; Однако при необходимости Copy может выделить дополнительный объем памяти для размещения элементов, копируемых в массив.
Пример
CArray::ElementAt
Возвращает временную ссылку на указанный элемент в массиве.
Параметры
Возвращаемое значение
Ссылка на элемент массива.
Комментарии
Он используется для реализации оператора присваивания слева для массивов.
Пример
CArray::FreeExtra
Освобождает все дополнительные памяти, которые были выделены, пока массив был увеличен.
Комментарии
Эта функция не влияет на размер или верхнюю границу массива.
Пример
CArray::GetAt
Возвращает элемент массива по указанному индексу.
Параметры
TYPE
Параметр шаблона, указывающий тип элементов массива.
Возвращаемое значение
Элемент массива в данный момент по этому индексу.
Комментарии
Передача отрицательного значения или значения, превышающего значение, возвращенное, GetUpperBound приведет к неудачному утверждению.
Пример
CArray::GetCount
Возвращает число элементов массива.
Возвращаемое значение
Количество элементов в массиве.
Комментарии
Вызовите этот метод, чтобы получить количество элементов в массиве. Поскольку индексы отсчитываются от нуля, размер равен 1 больше, чем самый крупный индекс. Вызов этого метода приведет к созданию того же результата, что и CArray::GetSize метод.
Пример
CArray::GetData
Используйте эту функцию члена для получения прямого доступа к элементам в массиве.
Параметры
TYPE
Параметр шаблона, указывающий тип элементов массива.
Возвращаемое значение
Указатель на элемент массива.
Комментарии
Если нет доступных элементов, GetData возвращает значение null.
Пример
CArray::GetSize
Возвращает размер массива.
Комментарии
Поскольку индексы отсчитываются от нуля, размер равен 1 больше, чем самый крупный индекс. Вызов этого метода приведет к созданию того же результата, что и CArray::GetCount метод.
Пример
CArray::GetUpperBound
Возвращает текущую верхнюю границу данного массива.
Комментарии
Условие GetUpperBound( ) =-1 указывает, что массив не содержит элементов.
Пример
CArray::InsertAt
Первая версия InsertAt вставляет один элемент (или несколько копий элемента) по указанному индексу в массиве.
Параметры
ARG_TYPE
Параметр шаблона, указывающий тип элементов в этом массиве.
newElement
Элемент, помещаемый в этот массив.
nCount
Количество раз, когда этот элемент должен быть вставлен (значение по умолчанию — 1).
pNewArray
Другой массив, содержащий элементы для добавления в этот массив.
Комментарии
В процессе он смещается (путем увеличения индекса) существующего элемента в этом индексе и сдвигает все элементы над ним.
Вторая версия вставляет все элементы из другой CArray коллекции, начиная с nStartIndex позиции.
SetAt Функция, напротив, заменяет один указанный элемент массива и не сдвигает ни одного элемента.
Пример
CArray::IsEmpty
Определяет, является ли массив пустым.
Возвращаемое значение
Ненулевое значение, если массив не содержит элементов; в противном случае — 0.
CArray::operator []
Эти операторы подстрочных индексов являются удобным заменой для SetAt GetAt функций и.
Параметры
TYPE
Параметр шаблона, указывающий тип элементов в этом массиве.
nIndex
Индекс элемента, к которому осуществляется доступ.
Комментарии
Отладочная версия библиотеки утверждает, находится ли индекс (в левой или правой части инструкции присваивания) вне границ.
Пример
CArray::RelocateElements
Перемещает данные в новый буфер, когда массив должен увеличиваться или сжиматься.
Параметры
pNewData
Новый буфер для массива элементов.
pData
Старый массив элементов.
nCount
Число элементов в старом массиве.
Комментарии
pNewData значение всегда достаточно велико для хранения всех pData элементов.
CArray Реализация использует этот метод для копирования старых данных в новый буфер, когда массив должен увеличиваться или сжиматься (когда SetSize или FreeExtra вызывается). Реализация по умолчанию просто копирует данные.
Для массивов, в которых элемент содержит указатель на один из своих собственных элементов, или другая структура содержит указатель на один из элементов массива, указатели не обновляются в виде обычного копирования. В этом случае можно исправить указатели, реализовав специализацию RelocateElements с соответствующими типами. Вы также отвечаете за копирование данных.
CArray::RemoveAll
Удаляет все элементы из этого массива.
Комментарии
Если массив уже пуст, функция продолжает работать.
Пример
CArray::RemoveAt
Удаляет один или несколько элементов, начиная с указанного индекса в массиве.
Параметры
nCount
Число удаляемых элементов.
Комментарии
В процессе он сдвигает все элементы над удаленными элементами. Он уменьшает верхнюю границу массива, но не освобождает память.
Если попытаться удалить больше элементов, чем содержится в массиве над точкой удаления, то отладочная версия библиотеки будет утверждена.
Пример
CArray::SetAt
Задает элемент массива по указанному индексу.
Параметры
ARG_TYPE
Параметр шаблона, указывающий тип аргументов, используемых для ссылок на элементы массива.
newElement
Новое значение элемента, которое должно храниться в указанной позиции.
Комментарии
SetAt не приведет к увеличению размера массива. Используйте, SetAtGrow Если требуется, чтобы массив был автоматически расти.
Необходимо убедиться, что значение индекса соответствует допустимой позиции в массиве. Если он выходит за пределы допустимого диапазона, отладочная версия библиотеки утверждает.
Пример
CArray::SetAtGrow
Задает элемент массива по указанному индексу.
Параметры
nIndex
Целочисленный индекс, который больше или равен 0.
ARG_TYPE
Параметр шаблона, указывающий тип элементов в массиве.
newElement
Элемент, добавляемый в этот массив. NULL Допустимое значение.
Комментарии
При необходимости массив автоматически растет (то есть верхняя граница корректируется для размещения нового элемента).
Пример
CArray::SetSize
Устанавливает размер пустого или существующего массива. При необходимости выделяет память.
Параметры
nNewSize
Новый размер массива (число элементов). Должно быть больше или равно 0.
nGrowBy
Минимальное число слотов элементов для выделения при необходимости увеличения размера.
Комментарии
Если новый размер меньше старого, массив усекается и освобождается вся неиспользуемая память.
Функция GetUpperBound () и GetLowerBound () для массива
Кто-нибудь может рассказать, что делают две функции? Они принимают целочисленный аргумент, который считается размерностью. Но как значение этого целого меняет результат?
Ниже приведен пример, который я выполнил.
Любая идея, почему GetLowerBound() всегда возвращает 0? Если это всегда возвращает 0, то почему мы нужно вызвать этот метод?
3 ответа
Возможно, некоторые примеры помогут вам понять эту тему.
Мы используем GetUpperBound() для определения верхней границы массива для заданной размерности, например:
обычно GetLowerBound() возвращает 0, поскольку по умолчанию массивы основаны на нуле, но в некоторых редких случаях это не так:
Integer параметр GetUpper/LowerBound() указывает размерность.
Кто-нибудь может рассказать, что делают две функции?
Это написано на их страницах MSDN. Они получают индекс первого/последнего элемента указанного измерения в массиве. Посмотрите Array.GetUpperBound и Array.GetLowerBound
Они принимают целочисленный аргумент, который считается размерностью.
Любая идея, почему GetLowerBound() всегда возвращает 0? Если это всегда возвращает 0, то почему нам нужно вызвать этот метод?
В массиве каждое измерение может иметь свои конкретные нижние и верхние границы. Таким образом, эти методы могут создавать разные результаты для каждого измерения массива.
Класс CObArray
Синтаксис
Члены
Открытые конструкторы
| name | Описание |
|---|---|
| CObArray::CObArray | Конструирует пустой массив для CObject указателей. |
Открытые методы
Открытые операторы
Комментарии
Эти массивы объектов похожи на массивы C, но они могут динамически сжиматься и увеличиваться по мере необходимости.
В Win32 размер CObArray объекта ограничен только доступной памятью.
Как и в случае с массивом C, время доступа для CObArray индексированного элемента является константой и не зависит от размера массива.
CObArray использует макрос IMPLEMENT_SERIAL для поддержки сериализации и записи элементов в дамп. Если массив CObject указателей хранится в архиве с перегруженным оператором вставки или с Serialize функцией-членом, каждый CObject элемент в свою очередь сериализуется вместе с индексом массива.
Если требуется дамп отдельных CObject элементов в массиве, необходимо задать CDumpContext для глубины объекта значение 1 или больше.
При CObArray удалении объекта или удалении его элементов CObject удаляются только указатели, а не объекты, на которые они ссылаются.
Наследование класса массива аналогично наследованию списка. Дополнительные сведения о наследовании класса списков специального назначения см. в статье коллекциистатей.
Если предполагается сериализовать массив, необходимо использовать макрос IMPLEMENT_SERIAL в реализации производного класса.
Иерархия наследования
Требования
Заголовок
CObArray::Add
Добавляет новый элемент в конец массива, увеличивая массив на 1.
Параметры
newElement
CObject Указатель, добавляемый к этому массиву.
Возвращаемое значение
Индекс добавленного элемента.
Комментарии
Если SetSize используется nGrowBy значение больше 1, может быть выделена память дополнительной памяти. Однако верхняя граница будет увеличена только до 1.
| Класс | Функция-член |
|---|---|
| CByteArray | INT_PTR Add(BYTE newElement); throw(CMemoryException*); |
| CDWordArray | INT_PTR Add(DWORD newElement); throw(CMemoryException*); |
| CPtrArray | INT_PTR Add(void* newElement); throw(CMemoryException*); |
| CStringArray | INT_PTR Add(LPCTSTR newElement); throw(CMemoryException*); INT_PTR Add(const CString& newElement); |
| CUIntArray | INT_PTR Add(UINT newElement); throw(CMemoryException*); |
| CWordArray | INT_PTR Add(WORD newElement); throw(CMemoryException*); |
Пример
CObList::CObList Список CAge классов, используемых во всех примерах коллекции, см. в разделе.
Результаты этой программы выглядят следующим образом:
CObArray::Append
Вызовите эту функцию члена, чтобы добавить содержимое другого массива в конец заданного массива.
Параметры
src
Источник элементов, добавляемых в массив.
Возвращаемое значение
Индекс первого добавленного элемента.
Комментарии
Массивы должны быть одного типа.
При необходимости Append может выделить дополнительный объем памяти для размещения элементов, добавляемых в массив.
| Класс | Функция-член |
|---|---|
| CByteArray | INT_PTR Append(const CByteArray& src); |
| CDWordArray | INT_PTR Append(const CDWordArray& src); |
| CPtrArray | INT_PTR Append(const CPtrArray& src); |
| CStringArray | INT_PTR Append(const CStringArray& src); |
| CUIntArray | INT_PTR Append(const CUIntArray& src); |
| CWordArray | INT_PTR Append(const CWordArray& src); |
Пример
CObList::CObList Список CAge классов, используемых во всех примерах коллекции, см. в разделе.
CObArray::Copy
Вызовите эту функцию члена, чтобы перезаписать элементы заданного массива элементами другого массива того же типа.
Параметры
src
Источник элементов, копируемых в массив.
Комментарии
Copy не освобождает память. При необходимости Copy может выделить дополнительный объем памяти для размещения элементов, копируемых в массив.
| Класс | Функция-член |
|---|---|
| CByteArray | void Copy(const CByteArray& src); |
| CDWordArray | void Copy(const CDWordArray& src); |
| CPtrArray | void Copy(const CPtrArray& src); |
| CStringArray | void Copy(const CStringArray& src); |
| CUIntArray | void Copy(const CUIntArray& src); |
| CWordArray | void Copy(const CWordArray& src); |
Пример
CObList::CObList Список CAge классов, используемых во всех примерах коллекции, см. в разделе.
CObArray::CObArray
Конструирует пустой CObject массив указателей.
Комментарии
Массив растет по одному элементу за раз.
| Класс | Конструктор |
|---|---|
| CByteArray | CByteArray(); |
| CDWordArray | CDWordArray(); |
| CPtrArray | CPtrArray(); |
| CStringArray | CStringArray(); |
| CUIntArray | CUIntArray(); |
| CWordArray | CWordArray(); |
Пример
CObArray::ElementAt
Возвращает временную ссылку на указатель элемента в массиве.
Параметры
Возвращаемое значение
Ссылка на CObject указатель.
Комментарии
Он используется для реализации оператора присваивания на стороне слева для массивов. Это расширенная функция, которая должна использоваться только для реализации специальных операторов массивов.
| Класс | Функция-член |
|---|---|
| CByteArray | BYTE& ElementAt(INT_PTR nIndex); |
| CDWordArray | DWORD& ElementAt(INT_PTR nIndex); |
| CPtrArray | void*& ElementAt(INT_PTR nIndex); |
| CStringArray | CString& ElementAt(INT_PTR nIndex); |
| CUIntArray | UINT& ElementAt(INT_PTR nIndex); |
| CWordArray | WORD& ElementAt(INT_PTR nIndex); |
Пример
CObArray::FreeExtra
Освобождает все дополнительные памяти, которые были выделены, пока массив был увеличен.
Комментарии
Эта функция не влияет на размер или верхнюю границу массива.
| Класс | Функция-член |
|---|---|
| CByteArray | void FreeExtra(); |
| CDWordArray | void FreeExtra(); |
| CPtrArray | void FreeExtra(); |
| CStringArray | void FreeExtra(); |
| CUIntArray | void FreeExtra(); |
| CWordArray | void FreeExtra(); |
Пример
CObArray::GetAt
Возвращает элемент массива по указанному индексу.
Параметры
Возвращаемое значение
CObject Элемент указателя, находящегося в данный момент в этом индексе.
Комментарии
Передача отрицательного значения или значения, превышающего значение, возвращенное, GetUpperBound приведет к неудачному утверждению.
| Класс | Функция-член |
|---|---|
| CByteArray | BYTE GetAt(INT_PTR nIndex) const; |
| CDWordArray | DWORD GetAt(INT_PTR nIndex) const; |
| CPtrArray | void* GetAt(INT_PTR nIndex) const; |
| CStringArray | CString GetAt(INT_PTR nIndex) const; |
| CUIntArray | UINT GetAt(INT_PTR nIndex) const; |
| CWordArray | WORD GetAt(INT_PTR nIndex) const; |
Пример
CObList::CObList Список CAge классов, используемых во всех примерах коллекции, см. в разделе.
CObArray::GetCount
Возвращает число элементов массива.
Возвращаемое значение
Количество элементов в массиве.
Комментарии
Вызовите этот метод, чтобы получить количество элементов в массиве. Поскольку индексы отсчитываются от нуля, размер равен 1 больше, чем самый крупный индекс.
| Класс | Функция-член |
|---|---|
| CByteArray | INT_PTR GetCount() const; |
| CDWordArray | INT_PTR GetCount() const; |
| CPtrArray | INT_PTR GetCount() const; |
| CStringArray | INT_PTR GetCount() const; |
| CUIntArray | INT_PTR GetCount() const; |
| CWordArray | INT_PTR GetCount() const; |
Пример
CObList::CObList Список CAge классов, используемых во всех примерах коллекции, см. в разделе.
CObArray::GetData
Используйте эту функцию члена для получения прямого доступа к элементам в массиве.
Возвращаемое значение
Указатель на массив CObject указателей.
Комментарии
Если нет доступных элементов, GetData возвращает NULL значение.
| Класс | Функция-член |
|---|---|
| CByteArray | const BYTE* GetData() const; BYTE* GetData(); |
| CDWordArray | const DWORD* GetData() const; DWORD* GetData(); |
| CPtrArray | const void** GetData() const; void** GetData(); |
| CStringArray | const CString* GetData() const; CString* GetData(); |
| CUIntArray | const UINT* GetData() const; UINT* GetData(); |
| CWordArray | const WORD* GetData() const; WORD* GetData(); |
Пример
CObList::CObList Список CAge классов, используемых во всех примерах коллекции, см. в разделе.
CObArray::GetSize
Возвращает размер массива.
Комментарии
Так как индексы отсчитываются от нуля, размер равен 1 больше, чем самый крупный индекс.
| Класс | Функция-член |
|---|---|
| CByteArray | INT_PTR GetSize() const; |
| CDWordArray | INT_PTR GetSize() const; |
| CPtrArray | INT_PTR GetSize() const; |
| CStringArray | INT_PTR GetSize() const; |
| CUIntArray | INT_PTR GetSize() const; |
| CWordArray | INT_PTR GetSize() const; |
Пример
CObList::CObList Список CAge классов, используемых во всех примерах коллекции, см. в разделе.
CObArray::GetUpperBound
Возвращает текущую верхнюю границу данного массива.
Возвращаемое значение
Индекс верхней границы (от нуля).
Комментарии
| Класс | Функция-член |
|---|---|
| CByteArray | INT_PTR GetUpperBound() const; |
| CDWordArray | INT_PTR GetUpperBound() const; |
| CPtrArray | INT_PTR GetUpperBound() const; |
| CStringArray | INT_PTR GetUpperBound() const; |
| CUIntArray | INT_PTR GetUpperBound() const; |
| CWordArray | INT_PTR GetUpperBound() const; |
Пример
CObList::CObList Список CAge классов, используемых во всех примерах коллекции, см. в разделе.
CObArray::InsertAt
Вставляет элемент (или все элементы в другом массиве) по указанному индексу.
Параметры
nCount
Количество раз, когда этот элемент должен быть вставлен (значение по умолчанию — 1).
pNewArray
Другой массив, содержащий элементы для добавления в этот массив.
Комментарии
Первая версия InsertAt вставляет один элемент (или несколько копий элемента) по указанному индексу в массиве. В процессе он смещается (путем увеличения индекса) существующего элемента в этом индексе и сдвигает все элементы над ним.
Вторая версия вставляет все элементы из другой CObArray коллекции, начиная с nStartIndex позиции.
SetAt Функция, напротив, заменяет один указанный элемент массива и не сдвигает ни одного элемента.
| Класс | Функция-член |
|---|---|
| CByteArray | void InsertAt(INT_PTR nIndex, BYTE newElement, int nCount = 1); void InsertAt(INT_PTR nStartIndex, CByteArray* pNewArray); throw(CMemoryException*); |
| CDWordArray | void InsertAt(INT_PTR nIndex, DWORD newElement, int nCount = 1); void InsertAt(INT_PTR nStartIndex, CDWordArray* pNewArray); throw(CMemoryException*); |
| CPtrArray | void InsertAt(INT_PTR nIndex, void* newElement, int nCount = 1); void InsertAt(INT_PTR nStartIndex, CPtrArray* pNewArray); throw(CMemoryException*); |
| CStringArray | void InsertAt(INT_PTR nIndex, LPCTSTR newElement, int nCount = 1); void InsertAt(INT_PTR nStartIndex, CStringArray* pNewArray); throw(CMemoryException*); |
| CUIntArray | void InsertAt(INT_PTR nIndex, UINT newElement, int nCount = 1); void InsertAt(INT_PTR nStartIndex, CUIntArray* pNewArray); throw(CMemoryException*); |
| CWordArray | void InsertAt(INT_PTR nIndex, WORD newElement, int nCount = 1); void InsertAt(INT_PTR nStartIndex, CWordArray* pNewArray); throw(CMemoryException*); |
Пример
CObList::CObList Список CAge классов, используемых во всех примерах коллекции, см. в разделе.
Результаты этой программы выглядят следующим образом:
CObArray::IsEmpty
Определяет, пуст ли массив.
Возвращаемое значение
Ненулевое значение, если массив пуст; в противном случае — 0.
CObArray::operator [ ]
Эти операторы подстрочных индексов являются удобным заменой для SetAt GetAt функций и.
Комментарии
Отладочная версия библиотеки утверждает, находится ли индекс (в левой или правой части инструкции присваивания) вне границ.
| Класс | Оператор |
|---|---|
| CByteArray | BYTE& operator [](INT_PTR nindex); BYTE operator [](INT_PTR nindex) const; |
| CDWordArray | DWORD& operator [](INT_PTR nindex); DWORD operator [](INT_PTR nindex) const; |
| CPtrArray | void*& operator [](INT_PTR nindex); void* operator [](INT_PTR nindex) const; |
| CStringArray | CString& operator [](INT_PTR nindex); CString operator [](INT_PTR nindex) const; |
| CUIntArray | UINT& operator [](INT_PTR nindex); UINT operator [](INT_PTR nindex) const; |
| CWordArray | WORD& operator [](INT_PTR nindex); WORD operator [](INT_PTR nindex) const; |
Пример
CObList::CObList Список CAge классов, используемых во всех примерах коллекции, см. в разделе.
CObArray::RemoveAll
Удаляет все указатели из этого массива, но фактически не удаляет CObject объекты.
Комментарии
Если массив уже пуст, функция продолжает работать.
RemoveAll Функция освобождает всю память, используемую для хранения указателя.
| Класс | Функция-член |
|---|---|
| CByteArray | void RemoveAll(); |
| CDWordArray | void RemoveAll(); |
| CPtrArray | void RemoveAll(); |
| CStringArray | void RemoveAll(); |
| CUIntArray | void RemoveAll(); |
| CWordArray | void RemoveAll(); |
Пример
CObList::CObList Список CAge классов, используемых во всех примерах коллекции, см. в разделе.
CObArray::RemoveAt
Удаляет один или несколько элементов, начиная с указанного индекса в массиве.
Параметры
nCount
Число удаляемых элементов.
Комментарии
В процессе он сдвигает все элементы над удаленными элементами. Он уменьшает верхнюю границу массива, но не освобождает память.
Если попытаться удалить больше элементов, чем содержится в массиве над точкой удаления, то отладочная версия библиотеки будет утверждена.
RemoveAt Функция удаляет CObject указатель из массива, но сам объект не удаляется.
| Класс | Функция-член |
|---|---|
| CByteArray | void RemoveAt(INT_PTR nIndex, INT_PTR nCount = 1); |
| CDWordArray | void RemoveAt(INT_PTR nIndex, INT_PTR nCount = 1); |
| CPtrArray | void RemoveAt(INT_PTR nIndex, INT_PTR nCount = 1); |
| CStringArray | void RemoveAt(INT_PTR nIndex, INT_PTR nCount = 1); |
| CUIntArray | void RemoveAt(INT_PTR nIndex, INT_PTR nCount = 1); |
| CWordArray | void RemoveAt(INT_PTR nIndex, INT_PTR nCount = 1); |
Пример
CObList::CObList Список CAge классов, используемых во всех примерах коллекции, см. в разделе.
Результаты этой программы выглядят следующим образом:
CObArray::SetAt
Задает элемент массива по указанному индексу.
Параметры
newElement
Указатель на объект, вставляемый в этот массив. NULL Допустимое значение.
Комментарии
SetAt не приводит к увеличению размера массива. Используйте, SetAtGrow Если требуется, чтобы массив был автоматически расти.
Убедитесь, что значение индекса соответствует допустимой позиции в массиве. Если он выходит за пределы допустимого диапазона, отладочная версия библиотеки утверждается.
| Класс | Функция-член |
|---|---|
| CByteArray | void SetAt(INT_PTR nIndex, BYTE newElement); |
| CDWordArray | void SetAt(INT_PTR nIndex, DWORD newElement); |
| CPtrArray | void SetAt(INT_PTR nIndex, void* newElement); |
| CStringArray | void SetAt(INT_PTR nIndex, LPCTSTR newElement); |
| CUIntArray | void SetAt(INT_PTR nIndex, UINT newElement); |
| CWordArray | void SetAt(INT_PTR nIndex, WORD newElement); |
Пример
CObList::CObList Список CAge классов, используемых во всех примерах коллекции, см. в разделе.
Результаты этой программы выглядят следующим образом:
CObArray::SetAtGrow
Задает элемент массива по указанному индексу.
Параметры
nIndex
Целочисленный индекс, который больше или равен 0.
newElement
Указатель на объект, добавляемый в этот массив. NULL Допустимое значение.
Комментарии
При необходимости массив автоматически растет (то есть верхняя граница корректируется для размещения нового элемента).
| Класс | Функция-член |
|---|---|
| CByteArray | void SetAtGrow(INT_PTR nIndex, BYTE newElement); throw(CMemoryException*); |
| CDWordArray | void SetAtGrow(INT_PTR nIndex, DWORD newElement); throw(CMemoryException*); |
| CPtrArray | void SetAtGrow(INT_PTR nIndex, void* newElement); throw( CMemoryException*); |
| CStringArray | void SetAtGrow(INT_PTR nIndex, LPCTSTR newElement); throw(CMemoryException*); |
| CUIntArray | void SetAtGrow(INT_PTR nIndex, UINT newElement); throw(CMemoryException*); |
| CWordArray | void SetAtGrow(INT_PTR nIndex, WORD newElement); throw(CMemoryException*); |
Пример
CObList::CObList Список CAge классов, используемых во всех примерах коллекции, см. в разделе.
Результаты этой программы выглядят следующим образом:
CObArray::SetSize
Устанавливает размер пустого или существующего массива. При необходимости выделяет память.
Параметры
nNewSize
Новый размер массива (число элементов). Должно быть больше или равно 0.
nGrowBy
Минимальное число слотов элементов для выделения при необходимости увеличения размера.
Комментарии
Если новый размер меньше старого, массив усекается и освобождается вся неиспользуемая память. Для повышения эффективности вызовите метод, SetSize чтобы задать размер массива перед его использованием. Это предотвращает необходимость перераспределения и копирования массива при каждом добавлении элемента.





