Поделиться через


CObArray::RemoveAt

Удаляет один или несколько элементов, начиная с указанного индекса в массиве.

void RemoveAt(
   INT_PTR nIndex,
   INT_PTR nCount = 1 
);

Параметры

  • nIndex
    Индекс целое число, которое больше или равно 0 и меньше или равно значению, возвращенному GetUpperBound.

  • nCount
    Число удаляемых элементов.

Заметки

В процессе его сдвигает вниз на всех элементов с удаленными элементами.Он уменьшает границы массива, но не освобождает память.

При попытке удалить несколько элементов, чем содержат в массиве над пунктом удаления, а отладочная версия библиотеки assert.

Функция RemoveAt удаляет указатель CObject из массива, но она не удаляется сам объект.

В следующей таблице приведены другие функции-члены, которые похожи на CObArray::RemoveAt.

Класс

Функция-член

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_PTRnIndex, INT_PTR nCount = 1 );

Пример

См. перечисление CObList::CObList для класса CAge, используемого во всех примерах коллекции.

CObArray arr;
CObject* pa;

arr.Add(new CAge(21)); // Element 0
arr.Add(new CAge(40)); // Element 1
if((pa = arr.GetAt(0)) != NULL)
{
    arr.RemoveAt(0);  // Element 1 moves to 0.
    delete pa; // Delete the original element at 0.
}
#ifdef _DEBUG
   afxDump.SetDepth(1);
   afxDump << _T("RemoveAt example: ") << &arr << _T("\n");
#endif      

Результаты из этой программы следующим образом:

RemoveAt example: A CObArray with 1 elements

[0] = a CAge at $4606 40

Требования

Header: afxcoll.h

См. также

Ссылки

Класс CObArray

Диаграмма иерархии

CObArray::SetAt

CObArray::SetAtGrow

CObArray::InsertAt