CObList::RemoveAt
Entfernt das angegebene Element dieser Liste.
void RemoveAt(
POSITION position
);
Parameter
- position
Die Position des Elements, aus der Liste entfernt werden.
Hinweise
Wenn Sie ein Element aus CObList entfernen, entfernen Sie den Objektzeiger aus der Liste. Es ist die Verantwortung, die Objekte selbst zu löschen.
Sie müssen sicherstellen, dass das POSITION-Wert eine gültige Position in der Liste darstellt. Wenn er ungültig ist, dann die Debugversion der Microsoft Foundation Class-Bibliothek-Assertionen.
In der folgenden Tabelle werden andere Memberfunktionen auf, die mit CObList::RemoveAt ähneln.
Klasse |
Memberfunktion |
---|---|
void RemoveAt( POSITION Position); |
|
void RemoveAt( POSITION Position); |
Beispiel
Seien Sie vorsichtig, wenn Sie ein Element in einer Listeniteration entfernen. Im folgenden Beispiel wird eine Entfernentechnik an, die einen gültigen Wert für POSITIONGetNext gewährleistet.
Siehe CObList::CObList für Listen der CAge-Klasse.
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
Die Ergebnisse dieses Programms sind, wie folgt:
RemoveAt example: A CObList with 2 elements
a CAge at $4C1E 65
a CAge at $4B22 21
Anforderungen
Header: afxcoll.h