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


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

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