CObArray::RemoveAt
Удаляет один или несколько элементов, начиная с указанного индекса в массиве.
void RemoveAt(
INT_PTR nIndex,
INT_PTR nCount = 1
);
Параметры
nIndex
Индекс целое число, которое больше или равно 0 и меньше или равно значению, возвращенному GetUpperBound.nCount
Число удаляемых элементов.
Заметки
В процессе его сдвигает вниз на всех элементов с удаленными элементами.Он уменьшает границы массива, но не освобождает память.
При попытке удалить несколько элементов, чем содержат в массиве над пунктом удаления, а отладочная версия библиотеки assert.
Функция RemoveAt удаляет указатель CObject из массива, но она не удаляется сам объект.
В следующей таблице приведены другие функции-члены, которые похожи на CObArray::RemoveAt.
Класс |
Функция-член |
---|---|
void RemoveAt( INT_PTR nIndex, INT_PTR nCount = 1 ); |
|
void RemoveAt( INT_PTR nIndex, INT_PTR nCount = 1 ); |
|
void RemoveAt( INT_PTR nIndex, INT_PTR nCount = 1 ); |
|
void RemoveAt( INT_PTR nIndex, INT_PTR nCount = 1 ); |
|
void RemoveAt( INT_PTR nIndex, INT_PTR nCount = 1 ); |
|
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