CObList::RemoveAt
Удаляет указанный элемент из этого списка.
void RemoveAt(
POSITION position
);
Параметры
- position
Положение элемента необходимо удалить из списка.
Заметки
При удалении элемента из CObList необходимо удалить указатель объекта из списка. Ответственность удалять объекты сами.
Необходимо убедиться, что значение POSITION представляет допустимую положение в списке. Если оно является недопустимым, отладочная версия библиотеки Microsoft Foundation Class assert.
В следующей таблице приведены другие функции-члены, которые похожи на CObList::RemoveAt.
Класс |
Функция-член |
---|---|
void RemoveAt( POSITION position ); |
|
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