Freigeben über


CList-Klasse

Unterstützt sortierte Listen mit Objekten, die nicht eindeutig sein müssen, und auf die sequenziell oder über den Wert zugegriffen werden kann.

Syntax

template<class TYPE, class ARG_TYPE = const TYPE&>
class CList : public CObject

Member

Öffentliche Konstruktoren

Name Beschreibung
CList::CList Erstellt eine leere sortierte Liste.

Öffentliche Methoden

Name Beschreibung
CList::AddHead Fügt dem Kopf der Liste ein Element (oder alle Elemente in einer anderen Liste) hinzu (macht einen neuen Kopf).
CList::AddTail Fügt dem Listenende ein Element (oder alle Elemente in einer anderen Liste) hinzu (macht einen neuen Tail).
CList::Find Ruft die Position eines Elements ab, das durch Zeigerwert angegeben wird.
CList::FindIndex Ruft die Position eines Elements ab, das durch einen nullbasierten Index angegeben wird.
CList::GetAt Ruft das Element an einer bestimmten Position ab.
CList::GetCount Gibt die Anzahl der Elemente in dieser Liste zurück.
CList::GetHead Gibt das Kopfelement der Liste zurück (darf nicht leer sein).
CList::GetHeadPosition Gibt die Position des Kopfelements der Liste zurück.
CList::GetNext Ruft das nächste Element zum Durchlaufen ab.
CList::GetPrev Ruft das vorherige Element zum Durchlaufen ab.
CList::GetSize Gibt die Anzahl der Elemente in dieser Liste zurück.
CList::GetTail Gibt das Tail-Element der Liste zurück (darf nicht leer sein).
CList::GetTailPosition Gibt die Position des Tail-Elements der Liste zurück.
CList::InsertAfter Fügt ein neues Element nach einer bestimmten Position ein.
CList::InsertBefore Fügt ein neues Element vor einer bestimmten Position ein.
CList::IsEmpty Tests für die leere Listenbedingung (keine Elemente).
CList::RemoveAll Entfernt alle Elemente aus dieser Liste.
CList::RemoveAt Entfernt ein Element aus dieser Liste, angegeben nach Position.
CList::RemoveHead Entfernt das Element aus dem Kopf der Liste.
CList::RemoveTail Entfernt das Element aus dem Tail der Liste.
CList::SetAt Legt das Element an einer bestimmten Position fest.

Parameter

TYPE
Typ des Objekts, das in der Liste gespeichert ist.

ARG_TYPE
Typ, der verwendet wird, um in der Liste gespeicherte Objekte zu referenzieren. Kann ein Verweis sein.

Hinweise

CList Listen verhalten sich wie doubly verknüpfte Listen.

Eine Variable vom Typ POSITION ist ein Schlüssel für die Liste. Sie können eine POSITION Variable als Iterator verwenden, um eine Liste sequenziell und als Textmarke zu durchlaufen, um eine Stelle zu speichern. Eine Position ist jedoch nicht mit einem Index identisch.

Die Elementeinfügung ist sehr schnell am Listenkopf, am Schwanz und an einem bekannten POSITION. Eine sequenzielle Suche ist erforderlich, um ein Element nach Wert oder Index nachzuschlagen. Diese Suche kann langsam sein, wenn die Liste lang ist.

Wenn Sie ein Abbild einzelner Elemente in der Liste benötigen, müssen Sie die Tiefe des Dumpkontexts auf 1 oder höher festlegen.

Bestimmte Memberfunktionen dieser Klasse rufen globale Hilfsfunktionen auf, die für die meisten Verwendungen der CList Klasse angepasst werden müssen. Siehe Sammlungsklassenhilfsprogramme im Abschnitt "Makros und Globals".

Weitere Informationen zur Verwendung CListfinden Sie im Artikel Sammlungen.

Beispiel

// CList is a template class that takes two template arguments.
// The first argument is type stored internally by the list, the
// second argument is the type used in the arguments for the
// CList methods.

// This code defines a list of ints.
CList<int, int> myIntList;

// This code defines a list of CStrings
CList<CString, CString &> myStringList;

// This code defines a list of MYTYPEs,
// NOTE: MYTYPE could be any struct, class or type definition
CList<MYTYPE, MYTYPE &> myTypeList;

Vererbungshierarchie

CObject

CList

Anforderungen

Header: afxtempl.h

CList::AddHead

Fügt dem Kopf dieser Liste ein neues Element oder eine Liste von Elementen hinzu.

POSITION AddHead(ARG_TYPE newElement);
void AddHead(CList* pNewList);

Parameter

ARG_TYPE
Vorlagenparameter, der den Typ des Listenelements angibt (kann ein Verweis sein).

newElement
Das neue Element.

pNewList
Ein Zeiger auf eine andere CList Liste. Die Elemente in pNewList dieser Liste werden hinzugefügt.

Rückgabewert

Die erste Version gibt den POSITION Wert des neu eingefügten Elements zurück.

Hinweise

Die Liste kann vor dem Vorgang leer sein.

Beispiel

// Declarations of the variables used in the example
CList<CString, CString &> myList;
CList<CString, CString &> myList2;

// There are two versions of CList::AddHead: one adds a single
// element to the front of the list, the second adds another list
// to the front.

// This adds the string "ABC" to the front of myList.
// myList is a list of CStrings (ie defined as CList<CString,CString&>).
myList.AddHead(CString(_T("ABC")));

// This adds the elements of myList2 to the front of myList.
myList.AddHead(&myList2);

CList::AddTail

Fügt dem Listenende ein neues Element oder eine Liste von Elementen hinzu.

POSITION AddTail(ARG_TYPE newElement);
void AddTail(CList* pNewList);

Parameter

ARG_TYPE
Vorlagenparameter, der den Typ des Listenelements angibt (kann ein Verweis sein).

newElement
Das Element, das der Liste hinzugefügt werden soll.

pNewList
Ein Zeiger auf eine andere CList Liste. Die Elemente in pNewList dieser Liste werden hinzugefügt.

Rückgabewert

Die erste Version gibt den POSITION Wert des neu eingefügten Elements zurück.

Hinweise

Die Liste kann vor dem Vorgang leer sein.

Beispiel

// Define myList and myList2.
CList<CString, CString &> myList;
CList<CString, CString &> myList2;

// Add elements to the end of myList and myList2.
myList.AddTail(CString(_T("A")));
myList.AddTail(CString(_T("B")));
myList2.AddTail(CString(_T("C")));
myList2.AddTail(CString(_T("D")));

// There are two versions of CList::AddTail: one adds a single
// element to the end of the list, the second adds another list
// to the end.

// This adds the string "ABC" to the end of myList.
// myList is a list of CStrings (ie defined as CList<CString,CString&>).
myList.AddTail(CString(_T("ABC")));
ASSERT(CString(_T("ABC")) == myList.GetTail());

// This adds the elements of myList2 to the end of myList.
myList.AddTail(&myList2);

CList::CList

Erstellt eine leere sortierte Liste.

CList(INT_PTR nBlockSize = 10);

Parameter

nBlockSize
Die Granularität der Speicherzuweisung für die Erweiterung der Liste.

Hinweise

Wenn die Liste wächst, wird Speicher in Einheiten von nBlockSize Einträgen zugeordnet.

Beispiel

// This code defines myList as a list of strings
// such that memory gets allocated in chunks of
// 16 strings.
CList<CString, CString &> myList(16);

// This code defines myList2 as a list of ints
// such that memory gets allocated in chunks of
// 128 ints.
CList<int, int> myList2(128);

CList::Find

Durchsucht die Liste sequenziell, um das erste Element zu finden, das dem angegebenen Element searchValueentspricht.

POSITION Find(
    ARG_TYPE searchValue,
    POSITION startAfter = NULL) const;

Parameter

ARG_TYPE
Vorlagenparameter, der den Typ des Listenelements angibt (kann ein Verweis sein).

searchValue
Der Wert, der in der Liste zu finden ist.

startAfter
Die Startposition für die Suche. Wenn kein Wert angegeben ist, beginnt die Suche mit dem Head-Element.

Rückgabewert

Ein POSITION Wert, der für iterations- oder Objektzeigerabrufe verwendet werden kann; NULL wenn das Objekt nicht gefunden wird.

Beispiel

// Define myList.
CList<CString, CString &> myList;

// Add three elements to the list.
myList.AddHead(CString(_T("XYZ")));
myList.AddHead(CString(_T("ABC")));
myList.AddHead(CString(_T("123")));

// Find a specific element.
POSITION pos = myList.Find(CString(_T("XYZ")));
ASSERT(CString(_T("XYZ")) == myList.GetAt(pos));

CList::FindIndex

Verwendet den Wert als nIndex Index in der Liste.

POSITION FindIndex(INT_PTR nIndex) const;

Parameter

nIndex
Der nullbasierte Index des zu findenden Listenelements.

Rückgabewert

Ein POSITION Wert, der für iterations- oder Objektzeigerabrufe verwendet werden kann. NULL Ist nIndex dies negativ oder zu groß.

Hinweise

Es beginnt eine sequenzielle Überprüfung vom Kopf der Liste, die auf dem nth-Elementbeendet wird.

Beispiel

// Define myList.
CList<CString, CString &> myList;

// Add three elements to the list.
myList.AddTail(CString(_T("XYZ")));
myList.AddTail(CString(_T("ABC")));
myList.AddTail(CString(_T("123")));

// Verify the first element (index 0).
ASSERT(CString(_T("XYZ")) == myList.GetAt(myList.FindIndex(0)));

// Verify the third element (index 2).
ASSERT(CString(_T("123")) == myList.GetAt(myList.FindIndex(2)));

CList::GetAt

Ruft das Listenelement an einer bestimmten Position ab.

TYPE& GetAt(POSITION position);
const TYPE& GetAt(POSITION position) const;

Parameter

TYPE
Vorlagenparameter, der den Typ des Objekts in der Liste angibt.

position
Die Position in der Liste des abzurufenden Elements.

Rückgabewert

Weitere Informationen finden Sie in der Beschreibung des Rückgabewerts für GetHead.

Hinweise

GetAt gibt das Element (oder einen Verweis auf das Element) zurück, das einer bestimmten Position zugeordnet ist. Es ist nicht identisch mit einem Index, und Sie können nicht selbst mit einem POSITION Wert arbeiten. Eine Variable vom Typ POSITION ist ein Schlüssel für die Liste.

Sie müssen sicherstellen, dass Ihr POSITION Wert eine gültige Position in der Liste darstellt. Wenn sie ungültig ist, wird die Debugversion der Microsoft Foundation-Klassenbibliothek bestätigt.

Beispiel

Ein Beispiel hierfür finden Sie unter CList::GetHeadPosition.

CList::GetCount

Ruft die Anzahl der Elemente in dieser Liste ab.

INT_PTR GetCount() const;

Rückgabewert

Ein ganzzahliger Wert, der die Elementanzahl enthält.

Hinweise

Durch Aufrufen dieser Methode wird dasselbe Ergebnis wie die CList::GetSize Methode generiert.

Beispiel

Ein Beispiel hierfür finden Sie unter CList::RemoveHead.

CList::GetHead

Ruft das Head-Element (oder einen Verweis auf das Kopfelement) dieser Liste ab.

const TYPE& GetHead() const;

TYPE& GetHead();

Parameter

TYPE
Vorlagenparameter, der den Typ des Objekts in der Liste angibt.

Rückgabewert

Wenn die Liste lautet const, GetHead wird eine Kopie des Elements am Anfang der Liste zurückgegeben. Dadurch kann die Funktion nur auf der rechten Seite einer Zuordnungsanweisung verwendet und die Liste vor Änderungen geschützt werden.

Wenn die Liste nicht constvorhanden ist, GetHead wird ein Verweis auf das Element am Anfang der Liste zurückgegeben. Dadurch kann die Funktion auf beiden Seiten einer Zuordnungsanweisung verwendet werden und somit die Listeneinträge geändert werden.

Hinweise

Sie müssen sicherstellen, dass die Liste vor dem Aufrufen GetHeadnicht leer ist. Wenn die Liste leer ist, wird die Debugversion der Microsoft Foundation-Klassenbibliothek bestätigt. Wird verwendet IsEmpty , um zu überprüfen, ob die Liste Elemente enthält.

Beispiel

// Define myList.
CList<CString, CString &> myList;

// Add an element to the front of the list.
myList.AddHead(CString(_T("ABC")));

// Verify the element was added to the front of the list.
ASSERT(CString(_T("ABC")) == myList.GetHead());

CList::GetHeadPosition

Ruft die Position des Kopfelements dieser Liste ab.

POSITION GetHeadPosition() const;

Rückgabewert

Ein POSITION Wert, der für iterations- oder Objektzeigerabrufe verwendet werden kann; NULL wenn die Liste leer ist.

Beispiel

// Define myList.
CList<CString, CString &> myList;

// Add an element to the front of the list.
myList.AddHead(CString(_T("ABC")));

// Verify the element at the head position
// is the one added.
POSITION pos = myList.GetHeadPosition();
ASSERT(CString(_T("ABC")) == myList.GetAt(pos));

CList::GetNext

Ruft das listenelement, durch rPositiondas identifiziert wird, und legt rPosition dann den POSITION Wert des nächsten Eintrags in der Liste fest.

TYPE& GetNext(POSITION& rPosition);
const TYPE& GetNext(POSITION& rPosition) const;

Parameter

TYPE
Vorlagenparameter, der den Typ der Elemente in der Liste angibt.

rPosition
Ein Verweis auf einen POSITION Wert, der von einem vorherigen GetNext, GetHeadPositionoder einem anderen Memberfunktionsaufruf zurückgegeben wird.

Rückgabewert

Wenn die Liste lautet const, GetNext wird eine Kopie eines Elements der Liste zurückgegeben. Dadurch kann die Funktion nur auf der rechten Seite einer Zuordnungsanweisung verwendet und die Liste vor Änderungen geschützt werden.

Wenn die Liste nicht constvorhanden ist, GetNext wird ein Verweis auf ein Element der Liste zurückgegeben. Dadurch kann die Funktion auf beiden Seiten einer Zuordnungsanweisung verwendet werden und somit die Listeneinträge geändert werden.

Hinweise

Sie können in einer Vorwärts iterationsschleife verwendenGetNext, wenn Sie die Anfangsposition mit einem Aufruf oder Findeinem Aufruf GetHeadPosition einrichten.

Sie müssen sicherstellen, dass Ihr POSITION Wert eine gültige Position in der Liste darstellt. Wenn sie ungültig ist, wird die Debugversion der Microsoft Foundation-Klassenbibliothek bestätigt.

Wenn das abgerufene Element der letzte in der Liste ist, wird der neue Wert rPosition auf NULL festgelegt.

Beispiel

// Define myList.
// Define myList.
CList<CString, CString &> myList;

// Add two elements to the list.
myList.AddHead(CString(_T("ABC")));
myList.AddHead(CString(_T("123")));

// Dump the list elements to the debug window.
POSITION pos = myList.GetHeadPosition();
for (int i = 0; i < myList.GetCount(); i++)
{
   TRACE(_T("%s\r\n"), (LPCTSTR)myList.GetNext(pos));
}

CList::GetPrev

Ruft das listenelement ab, durch rPositiondas identifiziert wird, und legt rPosition es dann auf den POSITION Wert des vorherigen Eintrags in der Liste fest.

TYPE& GetPrev(POSITION& rPosition);
const TYPE& GetPrev(POSITION& rPosition) const;

Parameter

TYPE
Vorlagenparameter, der den Typ der Elemente in der Liste angibt.

rPosition
Ein Verweis auf einen POSITION Wert, der von einem vorherigen GetPrev oder anderen Memberfunktionsaufruf zurückgegeben wird.

Rückgabewert

Wenn die Liste lautet const, GetPrev wird eine Kopie des Elements am Anfang der Liste zurückgegeben. Dadurch kann die Funktion nur auf der rechten Seite einer Zuordnungsanweisung verwendet und die Liste vor Änderungen geschützt werden.

Wenn die Liste nicht constvorhanden ist, GetPrev wird ein Verweis auf ein Element der Liste zurückgegeben. Dadurch kann die Funktion auf beiden Seiten einer Zuordnungsanweisung verwendet werden und somit die Listeneinträge geändert werden.

Hinweise

Sie können in einer Umgekehrten Iterationsschleife verwendenGetPrev, wenn Sie die Anfangsposition mit einem Aufruf oder Findeinem Aufruf GetTailPosition einrichten.

Sie müssen sicherstellen, dass Ihr POSITION Wert eine gültige Position in der Liste darstellt. Wenn sie ungültig ist, wird die Debugversion der Microsoft Foundation-Klassenbibliothek bestätigt.

Wenn das abgerufene Element der erste in der Liste ist, wird der neue Wert auf rPosition .NULL

Beispiel

// Define myList.
CList<CString,CString&> myList;

// Add two elements to the list.
myList.AddHead(CString(_T("ABC")));
myList.AddHead(CString(_T("123")));

// Dump the list elements to the debug window,
// in reverse order.
POSITION pos = myList.GetTailPosition();
for (int i = 0; i < myList.GetCount(); i++)
{
   TRACE(_T("%s\r\n"), (LPCTSTR)myList.GetPrev(pos));
}

CList::GetSize

Gibt die Anzahl der Listenelemente zurück.

INT_PTR GetSize() const;

Rückgabewert

Die Anzahl der Elemente in der Liste.

Hinweise

Rufen Sie diese Methode auf, um die Anzahl der Elemente in der Liste abzurufen. Durch Aufrufen dieser Methode wird dasselbe Ergebnis wie die CList::GetCount Methode generiert.

Beispiel

// Define myList.
CList<CString, CString &> myList;

// Add two elements to the list.
myList.AddHead(CString(_T("ABC")));
myList.AddHead(CString(_T("123")));

// Remove the head element and verify the list.
// NOTE: once the head is removed, the number of
// elements in the list will be one.
CString strHead = myList.RemoveHead();
ASSERT((CString(_T("123")) == strHead) && (myList.GetSize() == 1) &&
       (CString(_T("ABC")) == myList.GetHead()));

CList::GetTail

Ruft den CObject Zeiger ab, der das Tail-Element dieser Liste darstellt.

TYPE& GetTail();
const TYPE& GetTail() const;

Parameter

TYPE
Vorlagenparameter, der den Typ der Elemente in der Liste angibt.

Rückgabewert

Weitere Informationen finden Sie in der Beschreibung des Rückgabewerts für GetHead.

Hinweise

Sie müssen sicherstellen, dass die Liste vor dem Aufrufen GetTailnicht leer ist. Wenn die Liste leer ist, wird die Debugversion der Microsoft Foundation-Klassenbibliothek bestätigt. Wird verwendet IsEmpty , um zu überprüfen, ob die Liste Elemente enthält.

Beispiel

// Define myList.
CList<CString, CString &> myList;

// Add an element to the end of the list.
myList.AddTail(CString(_T("ABC")));

// Verify the element was added to the end of the list.
ASSERT(CString(_T("ABC")) == myList.GetTail());

CList::GetTailPosition

Ruft die Position des Tail-Elements dieser Liste ab; NULL wenn die Liste leer ist.

POSITION GetTailPosition() const;

Rückgabewert

Ein POSITION Wert, der für iterations- oder Objektzeigerabrufe verwendet werden kann; NULL wenn die Liste leer ist.

Beispiel

// Define myList.
CList<CString,CString&> myList;

// Add an element to the end of the list.
myList.AddTail(CString(_T("ABC")));

// Verify the element at the end position
// is the one added.
POSITION pos = myList.GetTailPosition();
ASSERT(CString(_T("ABC")) == myList.GetAt(pos));      

CList::InsertAfter

Fügt dieser Liste ein Element nach dem Element an der angegebenen Position hinzu.

POSITION InsertAfter(POSITION position, ARG_TYPE newElement);

Parameter

position
Ein POSITION-Wert, der von einem vorherigen GetNextAufruf GetPrevoder Find einem Memberfunktionsaufruf zurückgegeben wird.

ARG_TYPE
Vorlagenparameter, der den Typ des Listenelements angibt.

newElement
Das Element, das der Liste hinzugefügt werden soll.

Rückgabewert

Ein POSITION Wert, der für iterations- oder Listenelementabrufe verwendet werden kann.

Beispiel

// Define myList.
CList<CString, CString &> myList;

// Add three elements to the list.
POSITION pos = myList.AddHead(CString(_T("XYZ")));
pos = myList.InsertAfter(pos, CString(_T("ABC")));
pos = myList.InsertAfter(pos, CString(_T("123")));

// Verify the tail element is what's expected.
ASSERT(CString(_T("123")) == myList.GetTail());

CList::InsertBefore

Fügt dieser Liste ein Element vor dem Element an der angegebenen Position hinzu.

POSITION InsertBefore(POSITION position, ARG_TYPE newElement);

Parameter

position
Ein POSITION Wert, der von einem vorherigen GetNext, GetPrevoder Find Memberfunktionsaufruf zurückgegeben wird.

ARG_TYPE
Vorlagenparameter, der den Typ des Listenelements angibt (kann ein Verweis sein).

newElement
Das Element, das der Liste hinzugefügt werden soll.

Rückgabewert

Ein POSITION Wert, der für iterations- oder Listenelementabrufe verwendet werden kann.

Hinweise

Wenn position ja NULL, wird das Element an der Kopfzeile der Liste eingefügt.

Beispiel

// Define myList.
CList<CString, CString &> myList;

// Add three elements to the list.
POSITION pos = myList.AddHead(CString(_T("XYZ")));
pos = myList.InsertBefore(pos, CString(_T("ABC")));
pos = myList.InsertBefore(pos, CString(_T("123")));

// Verify the head element is what's expected.
ASSERT(CString(_T("123")) == myList.GetHead());

CList::IsEmpty

Gibt an, ob diese Liste keine Elemente enthält.

BOOL IsEmpty() const;

Rückgabewert

Nonzero, wenn diese Liste leer ist; andernfalls 0.

Beispiel

// Define myList.
CList<CString, CString &> myList;

// Add three elements to the list.
myList.AddTail(CString(_T("XYZ")));
myList.AddTail(CString(_T("ABC")));
myList.AddTail(CString(_T("123")));

// Remove the head element until the list is empty.
CString str;
while (!myList.IsEmpty())
{
   str = myList.RemoveHead();
   TRACE(_T("%s\r\n"), (LPCTSTR)str);
}

CList::RemoveAll

Entfernt alle Elemente aus dieser Liste und gibt den zugeordneten Speicher frei.

void RemoveAll();

Hinweise

Wenn die Liste bereits leer ist, wird kein Fehler generiert.

Beispiel

// Define myList.
CList<CString, CString&> myList;

// Add three elements to the list.
myList.AddTail(CString(_T("XYZ")));
myList.AddTail(CString(_T("ABC")));
myList.AddTail(CString(_T("123")));

// Remove all of the elements in the list.
myList.RemoveAll();

// Verify the list is empty.
ASSERT(myList.IsEmpty());

CList::RemoveAt

Entfernt das angegebene Element aus dieser Liste.

void RemoveAt(POSITION position);

Parameter

position
Die Position des Elements, das aus der Liste entfernt werden soll.

Hinweise

Sie müssen sicherstellen, dass Ihr POSITION Wert eine gültige Position in der Liste darstellt. Wenn sie ungültig ist, wird die Debugversion der Microsoft Foundation-Klassenbibliothek bestätigt.

Beispiel

// Define myList.
CList<CString, CString&> myList;

// Add three elements to the list.
myList.AddTail(CString(_T("XYZ")));
myList.AddTail(CString(_T("ABC")));
myList.AddTail(CString(_T("123")));

// Remove CString("ABC") from the list.
myList.RemoveAt(myList.FindIndex(1));

// Verify CString("ABC") is not in the list.
ASSERT(myList.Find(CString(_T("ABC"))) == NULL);

CList::RemoveHead

Entfernt das Element aus dem Kopf der Liste und gibt einen Zeiger darauf zurück.

TYPE RemoveHead();

Parameter

TYPE
Vorlagenparameter, der den Typ der Elemente in der Liste angibt.

Rückgabewert

Das Element, das zuvor am Anfang der Liste steht.

Hinweise

Sie müssen sicherstellen, dass die Liste vor dem Aufrufen RemoveHeadnicht leer ist. Wenn die Liste leer ist, wird die Debugversion der Microsoft Foundation-Klassenbibliothek bestätigt. Wird verwendet IsEmpty , um zu überprüfen, ob die Liste Elemente enthält.

Beispiel

// Define myList.
CList<CString, CString&> myList;

// Add two elements to the list.
myList.AddHead(CString(_T("ABC")));
myList.AddHead(CString(_T("123")));

// Remove the head element and verify the list.
// NOTE: once the head is removed, the number of
// elements in the list will be one.
CString strHead = myList.RemoveHead();
ASSERT((CString(_T("123")) == strHead) && (myList.GetCount() == 1) &&
(CString(_T("ABC")) == myList.GetHead()));

CList::RemoveTail

Entfernt das Element aus dem Tail der Liste und gibt einen Zeiger darauf zurück.

TYPE RemoveTail();

Parameter

TYPE
Vorlagenparameter, der den Typ der Elemente in der Liste angibt.

Rückgabewert

Das Element, das sich am Ende der Liste befand.

Hinweise

Sie müssen sicherstellen, dass die Liste vor dem Aufrufen RemoveTailnicht leer ist. Wenn die Liste leer ist, wird die Debugversion der Microsoft Foundation-Klassenbibliothek bestätigt. Wird verwendet IsEmpty , um zu überprüfen, ob die Liste Elemente enthält.

Beispiel

// Define myList.
CList<CString, CString &> myList;

// Add two elements to the list.
myList.AddTail(CString(_T("ABC")));
myList.AddTail(CString(_T("123")));

// Remove the tail element and verify the list.
// NOTE: once the tail is removed, the number of
// elements in the list will be one.
CString strTail = myList.RemoveTail();
ASSERT((CString(_T("123")) == strTail) && (myList.GetCount() == 1) &&
       (CString(_T("ABC")) == myList.GetTail()));

CList::SetAt

Eine Variable vom Typ POSITION ist ein Schlüssel für die Liste.

void SetAt(POSITION pos, ARG_TYPE newElement);

Parameter

pos
Das POSITION festzulegende Element.

ARG_TYPE
Vorlagenparameter, der den Typ des Listenelements angibt (kann ein Verweis sein).

newElement
Das Element, das der Liste hinzugefügt werden soll.

Hinweise

Es ist nicht identisch mit einem Index, und Sie können nicht selbst mit einem POSITION Wert arbeiten. SetAt schreibt das Element an die angegebene Position in der Liste.

Sie müssen sicherstellen, dass Ihr POSITION Wert eine gültige Position in der Liste darstellt. Wenn sie ungültig ist, wird die Debugversion der Microsoft Foundation-Klassenbibliothek bestätigt.

Beispiel

// Define myList.
CList<CString, CString &> myList;

// Add three elements to the list.
myList.AddTail(CString(_T("XYZ")));
myList.AddTail(CString(_T("ABC")));
myList.AddTail(CString(_T("123")));

// Replace CString("ABC") with CString("CBA")
POSITION pos = myList.Find(CString(_T("ABC")));
myList.SetAt(pos, CString(_T("CBA")));

// Verify CString("ABC") is not in the list.
ASSERT(myList.Find(CString(_T("ABC"))) == NULL);

Siehe auch

MFC-Beispiel COLLECT
CObject Klasse
Hierarchiediagramm
CMap Klasse
CArray Klasse