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


CObList::RemoveAt

Удаляет указанный элемент из этого списка.

void RemoveAt(
   POSITION position 
);

Параметры

  • position
    Положение элемента необходимо удалить из списка.

Заметки

При удалении элемента из CObList необходимо удалить указатель объекта из списка.Ответственность удалять объекты сами.

Необходимо убедиться, что значение POSITION представляет допустимую положение в списке.Если оно является недопустимым, отладочная версия библиотеки Microsoft Foundation Class assert.

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

Класс

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

CPtrList

void RemoveAt( POSITION position );

CStringList

void RemoveAt( POSITION position );

Пример

Будьте внимательны при удалении элемента во время итерации списка.В следующем примере показан метод удаления, гарантирует допустимое значение POSITION для GetNext.

См. перечисление CObList::CObList для класса CAge.

CObList list;
POSITION pos1, pos2;
CObject* pa;

list.AddHead(new CAge(21));
list.AddHead(new CAge(40));
list.AddHead(new CAge(65)); // List now contains (65 40, 21).
for (pos1 = list.GetHeadPosition(); (pos2 = pos1) != NULL;)
{
    if (*(CAge*) list.GetNext(pos1) == CAge(40))
    {
        pa = list.GetAt(pos2); // Save the old pointer for
                               //deletion.
        list.RemoveAt(pos2);
        delete pa; // Deletion avoids memory leak.
    }
}
#ifdef _DEBUG
   afxDump.SetDepth(1);
   afxDump << _T("RemoveAt example: ") << &list << _T("\n");
#endif      

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

RemoveAt example: A CObList with 2 elements

a CAge at $4C1E 65

a CAge at $4B22 21

Требования

Header: afxcoll.h

См. также

Ссылки

Класс CObList

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