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