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 CList
finden 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
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 searchValue
entspricht.
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 const
vorhanden 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 GetHead
nicht 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 rPosition
das 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
, GetHeadPosition
oder 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 const
vorhanden 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 Find
einem 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 rPosition
das 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 const
vorhanden 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 Find
einem 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 GetTail
nicht 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 GetNext
Aufruf GetPrev
oder 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
, GetPrev
oder 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 RemoveHead
nicht 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 RemoveTail
nicht 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