Freigeben über


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

CPtrList

void RemoveAt( POSITION Position);

CStringList

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

Siehe auch

Referenz

CObList-Klasse

Hierarchiediagramm