Share via


CObList-klasse

Opmerking

De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Ondersteunt geordende lijsten met niet-aanwijzers CObject die sequentieel of per aanwijzerwaarde toegankelijk zijn.

Syntaxis

class CObList : public CObject

Leden

Openbare constructors

Naam Description
CObList::CObList Hiermee maakt u een lege lijst voor CObject aanwijzers.

Openbare methoden

Naam Description
CObList::AddHead Voegt een element (of alle elementen in een andere lijst) toe aan het hoofd van de lijst (maakt een nieuw hoofd).
CObList::AddTail Voegt een element (of alle elementen in een andere lijst) toe aan de staart van de lijst (maakt een nieuwe staart).
CObList::Find Hiermee haalt u de positie op van een element dat is opgegeven door de aanwijzerwaarde.
CObList::FindIndex Hiermee haalt u de positie op van een element dat is opgegeven door een index op basis van nul.
CObList::GetAt Hiermee haalt u het element op een bepaalde positie op.
CObList::GetCount Retourneert het aantal elementen in deze lijst.
CObList::GetHead Retourneert het hoofdelement van de lijst (mag niet leeg zijn).
CObList::GetHeadPosition Retourneert de positie van het hoofdelement van de lijst.
CObList::GetNext Hiermee haalt u het volgende element op voor het herhalen.
CObList::GetPrev Hiermee haalt u het vorige element op voor het herhalen.
CObList::GetSize Retourneert het aantal elementen in deze lijst.
CObList::GetTail Retourneert het staartelement van de lijst (kan niet leeg zijn).
CObList::GetTailPosition Retourneert de positie van het staartelement van de lijst.
CObList::InsertAfter Hiermee voegt u een nieuw element in na een bepaalde positie.
CObList::InsertBefore Hiermee voegt u een nieuw element in vóór een bepaalde positie.
CObList::IsEmpty Hiermee wordt getest op de voorwaarde voor een lege lijst (geen elementen).
CObList::RemoveAll Hiermee verwijdert u alle elementen uit deze lijst.
CObList::RemoveAt Hiermee verwijdert u een element uit deze lijst, opgegeven op positie.
CObList::RemoveHead Hiermee verwijdert u het element uit de kop van de lijst.
CObList::RemoveTail Hiermee verwijdert u het element uit de staart van de lijst.
CObList::SetAt Hiermee stelt u het element op een bepaalde positie in.

Opmerkingen

CObList lijsten gedragen zich als dubbel gekoppelde lijsten.

Een variabele van het type POSITION is een sleutel voor de lijst. U kunt een POSITION variabele zowel als een iterator gebruiken om een lijst opeenvolgend te doorlopen en als bladwijzer om een plaats te bewaren. Een positie is echter niet hetzelfde als een index.

Elementinvoeging is zeer snel bij de lijstkop, aan de staart en op een bekende POSITION. Een sequentiële zoekopdracht is nodig om een element op waarde of index op te zoeken. Deze zoekopdracht kan traag zijn als de lijst lang is.

CObList bevat de IMPLEMENT_SERIAL macro ter ondersteuning van serialisatie en dumping van de elementen. Als een lijst CObject met aanwijzers wordt opgeslagen in een archief, ofwel met een overbelaste invoegoperator of met de Serialize lidfunctie, wordt elk CObject element op zijn beurt geserialiseerd.

Als u een dump van afzonderlijke CObject elementen in de lijst nodig hebt, moet u de diepte van de dumpcontext instellen op 1 of hoger.

Wanneer een CObList object wordt verwijderd of wanneer de elementen ervan worden verwijderd, worden alleen de CObject aanwijzers verwijderd, niet de objecten waarnaar ze verwijzen.

U kunt uw eigen lessen afleiden van CObList. Uw nieuwe lijstklasse, ontworpen voor het opslaan van aanwijzers naar objecten die zijn afgeleid van CObject, voegt nieuwe gegevensleden en nieuwe lidfuncties toe. Houd er rekening mee dat de resulterende lijst niet strikt veilig is, omdat hiermee een aanwijzer kan worden ingevoegd CObject .

Opmerking

U moet de IMPLEMENT_SERIAL macro gebruiken in de implementatie van uw afgeleide klasse als u de lijst wilt serialiseren.

Zie het artikel Verzamelingen voor meer informatie over het gebruikCObList.

Overnamehiërarchie

CObject

CObList

Requirements

Rubriek:afxcoll.h

CObList::AddHead

Hiermee voegt u een nieuw element of een nieuwe lijst met elementen toe aan het hoofd van deze lijst.

POSITION AddHead(CObject* newElement);
void AddHead(CObList* pNewList);

Parameterwaarden

newElement
De CObject aanwijzer die aan deze lijst moet worden toegevoegd.

pNewList
Een aanwijzer naar een andere CObList lijst. De elementen in pNewList worden toegevoegd aan deze lijst.

Retourwaarde

De eerste versie retourneert de POSITION waarde van het nieuw ingevoegde element.

In de volgende tabel ziet u andere lidfuncties die vergelijkbaar zijn met CObList::AddHead.

Class Lid, functie
CPtrList POSITION AddHead( void * newElement );

void AddHead( CPtrList * pNewList );
CStringList POSITION AddHead(const CString& newElement );

POSITION AddHead(LPCTSTR newElement );

void AddHead(CStringList * pNewList );

Opmerkingen

De lijst kan leeg zijn voordat de bewerking wordt uitgevoerd.

Example

Zie CObList::CObList voor een lijst van de CAge klasse.

CObList list;
list.AddHead(new CAge(21)); // 21 is now at head.
list.AddHead(new CAge(40)); // 40 replaces 21 at head.
#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("AddHead example: ") << &list << _T("\n");
#endif      

De resultaten van dit programma zijn als volgt:

AddHead example: A CObList with 2 elements
a CAge at $44A8 40
a CAge at $442A 21

CObList::AddTail

Hiermee voegt u een nieuw element of een nieuwe lijst met elementen toe aan de staart van deze lijst.

POSITION AddTail(CObject* newElement);
void AddTail(CObList* pNewList);

Parameterwaarden

newElement
De CObject aanwijzer die aan deze lijst moet worden toegevoegd.

pNewList
Een aanwijzer naar een andere CObList lijst. De elementen in pNewList worden toegevoegd aan deze lijst.

Retourwaarde

De eerste versie retourneert de POSITION waarde van het nieuw ingevoegde element.

Opmerkingen

De lijst kan leeg zijn voordat de bewerking wordt uitgevoerd.

In de volgende tabel ziet u andere lidfuncties die vergelijkbaar zijn met CObList::AddTail.

Class Lid, functie
CPtrList POSITION AddTail( void * newElement );

void AddTail( CPtrList * pNewList );
CStringList POSITION AddTail( const CString& newElement );

POSITION AddTail( LPCTSTR newElement );

void AddTail( CStringList * pNewList );

Example

Zie CObList::CObList voor een lijst van de CAge klasse.

CObList list;
list.AddTail(new CAge(21));
list.AddTail(new CAge(40)); // List now contains (21, 40).
#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("AddTail example: ") << &list << _T("\n");
#endif      

De resultaten van dit programma zijn als volgt:

AddTail example: A CObList with 2 elements
a CAge at $444A 21
a CAge at $4526 40

CObList::CObList

Hiermee wordt een lege CObject aanwijzerlijst gemaakt.

CObList(INT_PTR nBlockSize = 10);

Parameterwaarden

nBlockSize
De granulariteit voor geheugentoewijzing voor het uitbreiden van de lijst.

Opmerkingen

Naarmate de lijst groeit, wordt geheugen toegewezen in eenheden van nBlockSize vermeldingen. Als een geheugentoewijzing mislukt, wordt er een CMemoryException gegenereerd.

In de volgende tabel ziet u andere lidfuncties die vergelijkbaar zijn met CObList::CObList.

Class Lid, functie
CPtrList CPtrList( INT_PTR nBlockSize = 10 );
CStringList CStringList( INT_PTR nBlockSize = 10 );

Example

Hieronder ziet u een lijst van de CObject-afgeleide klasse CAge die wordt gebruikt in alle verzamelingsvoorbeelden:

// Simple CObject-derived class for CObList and other examples
class CAge : public CObject
{
   DECLARE_SERIAL(CAge)
private:
   int   m_years;
public:
   CAge() { m_years = 0; }
   CAge(int age) { m_years = age; }
   CAge(const CAge& a) { m_years = a.m_years; } // Copy constructor
   void Serialize(CArchive& ar);
   void AssertValid() const;
   const CAge& operator=(const CAge& a)
   {
      m_years = a.m_years; return *this;
   }
   BOOL operator==(CAge a)
   {
      return m_years == a.m_years;
   }
#ifdef _DEBUG
   void Dump(CDumpContext& dc) const
   {
      CObject::Dump(dc);
      dc << m_years;
   }
#endif
};

Hieronder ziet u een voorbeeld van CObList constructorgebruik:

CObList list(20);  // List on the stack with blocksize = 20.

CObList* plist = new CObList; // List on the heap with default 
                              // blocksize.         

CObList::Find

Hiermee wordt de lijst opeenvolgend doorzocht om de eerste CObject aanwijzer te vinden die overeenkomt met de opgegeven CObject aanwijzer.

POSITION Find(
    CObject* searchValue,
    POSITION startAfter = NULL) const;

Parameterwaarden

searchValue
De objectpointer die u in deze lijst wilt vinden.

startAfter
De beginpositie voor de zoekopdracht.

Retourwaarde

Een POSITION waarde die kan worden gebruikt voor iteratie of het ophalen van objectaanwijzers. NULL Als het object niet wordt gevonden.

Opmerkingen

Houd er rekening mee dat de aanwijzerwaarden worden vergeleken, niet de inhoud van de objecten.

In de volgende tabel ziet u andere lidfuncties die vergelijkbaar zijn met CObList::Find.

Class Lid, functie
CPtrList POSITION Find( void *searchValue , POSITION startAfter = NULL ) const;
CStringList POSITION Find( LPCTSTR searchValue , POSITION startAfter = NULL ) const;

Example

Zie CObList::CObList voor een lijst van de CAge klasse.

CObList list;
CAge* pa1;
CAge* pa2;
POSITION pos;
list.AddHead(pa1 = new CAge(21));
list.AddHead(pa2 = new CAge(40));    // List now contains (40, 21).
if ((pos = list.Find(pa1)) != NULL) // Hunt for pa1
{                                  // starting at head by default.
   ASSERT(*(CAge*)list.GetAt(pos) == CAge(21));
}

CObList::FindIndex

Gebruikt de waarde van nIndex als een index in de lijst.

POSITION FindIndex(INT_PTR nIndex) const;

Parameterwaarden

nIndex
De op nul gebaseerde index van het lijstelement dat moet worden gevonden.

Retourwaarde

Een POSITION waarde die kan worden gebruikt voor het ophalen van iteratie of objectaanwijzer; NULL als nIndex deze te groot is. (Het framework genereert een verklaring als nIndex dit negatief is.)

Opmerkingen

Er wordt een sequentiële scan gestart vanaf de kop van de lijst en wordt gestopt op het ndeelement.

In de volgende tabel ziet u andere lidfuncties die vergelijkbaar zijn met CObList::FindIndex.

Class Lid, functie
CPtrList POSITION FindIndex( INT_PTR nIndex ) const;
CStringList POSITION FindIndex( INT_PTR nIndex ) const;

Example

Zie CObList::CObList voor een lijst van de CAge klasse.

CObList list;
POSITION pos;

list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
if ((pos = list.FindIndex(0)) != NULL)
{
   ASSERT(*(CAge*)list.GetAt(pos) == CAge(40));
}

CObList::GetAt

Een variabele van het type POSITION is een sleutel voor de lijst.

CObject*& GetAt(POSITION position);
const CObject*& GetAt(POSITION position) const;

Parameterwaarden

position
Een POSITION waarde die wordt geretourneerd door een eerdere GetHeadPosition of Find lidfunctieoproep.

Retourwaarde

Zie de beschrijving van de retourwaarde voor GetHead.

Opmerkingen

Het is niet hetzelfde als een index en u kunt niet zelf werken aan een POSITION waarde. GetAt haalt de CObject aanwijzer op die is gekoppeld aan een bepaalde positie.

U moet ervoor zorgen dat uw POSITION waarde een geldige positie in de lijst vertegenwoordigt. Als deze ongeldig is, wordt de foutopsporingsversie van de Microsoft Foundation Class Library asserts.

In de volgende tabel ziet u andere lidfuncties die vergelijkbaar zijn met CObList::GetAt.

Class Lid, functie
CPtrList const void*& GetAt( POSITION position ) const;

void*& GetAt( POSITION position );
CStringList const CString& GetAt( POSITION position ) const;

CString& GetAt( POSITION position );

Example

Zie het voorbeeld voor FindIndex.

CObList::GetCount

Hiermee haalt u het aantal elementen in deze lijst op.

INT_PTR GetCount() const;

Retourwaarde

Een geheel getal dat het aantal elementen bevat.

In de volgende tabel ziet u andere lidfuncties die vergelijkbaar zijn met CObList::GetCount.

Class Lid, functie
CPtrList INT_PTR GetCount( ) const;
CStringList INT_PTR GetCount( ) const;

Example

Zie CObList::CObList voor een lijst van de CAge klasse.

CObList list;

list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
ASSERT(list.GetCount() == 2);

CObList::GetHead

Hiermee haalt u de CObject aanwijzer op die het hoofdelement van deze lijst vertegenwoordigt.

CObject*& GetHead();
const CObject*& GetHead() const;

Retourwaarde

Als de lijst wordt geopend via een aanwijzer naar een const CObList, GetHead retourneert u een CObject aanwijzer. Hierdoor kan de functie alleen aan de rechterkant van een toewijzingsinstructie worden gebruikt en wordt de lijst dus beschermd tegen wijziging.

Als de lijst rechtstreeks of via een aanwijzer naar een CObListlijst wordt geopend, retourneert u GetHead een verwijzing naar een CObject aanwijzer. Hierdoor kan de functie aan beide zijden van een toewijzingsinstructie worden gebruikt en kunnen de lijstvermeldingen dus worden gewijzigd.

Opmerkingen

U moet ervoor zorgen dat de lijst niet leeg is voordat u aanroept GetHead. Als de lijst leeg is, wordt de foutopsporingsversie van de Microsoft Foundation Class Library weergegeven. Gebruik IsEmpty dit om te controleren of de lijst elementen bevat.

In de volgende tabel ziet u andere lidfuncties die vergelijkbaar zijn met CObList::GetHead.

Class Lid, functie
CPtrList const void*& GetHead( ) const; void*& GetHead( );
CStringList const CString& GetHead( ) const; CString& GetHead( );

Example

Zie CObList::CObList voor een lijst van de CAge klasse.

In het volgende voorbeeld ziet u het gebruik van GetHead aan de linkerkant van een toewijzingsinstructie.

const CObList* cplist;

CObList* plist = new CObList;
CAge* page1 = new CAge(21);
CAge* page2 = new CAge(30);
CAge* page3 = new CAge(40);
plist->AddHead(page1);
plist->AddHead(page2);  // List now contains (30, 21).
// The following statement REPLACES the head element.
plist->GetHead() = page3; // List now contains (40, 21).
ASSERT(*(CAge*)plist->GetHead() == CAge(40));
cplist = plist;  // cplist is a pointer to a const list.
// cplist->GetHead() = page3; // Error: can't assign a pointer to a const list
ASSERT(*(CAge*)plist->GetHead() == CAge(40)); // OK

delete page1;
delete page2;
delete page3;
delete plist; // Cleans up memory.      

CObList::GetHeadPosition

Hiermee haalt u de positie van het hoofdelement van deze lijst op.

POSITION GetHeadPosition() const;

Retourwaarde

Een POSITION waarde die kan worden gebruikt voor het ophalen van iteratie of objectaanwijzer. NULL Als de lijst leeg is.

In de volgende tabel ziet u andere lidfuncties die vergelijkbaar zijn met CObList::GetHeadPosition.

Class Lid, functie
CPtrList POSITION GetHeadPosition( ) const;
CStringList POSITION GetHeadPosition( ) const;

Example

Zie CObList::CObList voor een lijst van de CAge klasse.

CObList list;
POSITION pos;

list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
if ((pos = list.GetHeadPosition()) != NULL)
{
   ASSERT(*(CAge*)list.GetAt(pos) == CAge(40));
}

CObList::GetNext

Hiermee wordt het lijstelement opgehaald dat is geïdentificeerd door rPositionen wordt rPosition vervolgens ingesteld op de POSITION waarde van het volgende item in de lijst.

CObject*& GetNext(POSITION& rPosition);
const CObject* GetNext(POSITION& rPosition) const;

Parameterwaarden

rPosition
Een verwijzing naar een POSITION waarde die wordt geretourneerd door een vorige GetNext, GetHeadPositionof een andere functie-aanroep van leden.

Retourwaarde

Zie de beschrijving van de retourwaarde voor GetHead.

Opmerkingen

U kunt in een doorstuurlus gebruiken GetNext als u de initiële positie met een aanroep naar GetHeadPosition of Find.

U moet ervoor zorgen dat uw POSITION waarde een geldige positie in de lijst vertegenwoordigt. Als deze ongeldig is, wordt de foutopsporingsversie van de Microsoft Foundation Class Library asserts.

Als het opgehaalde element de laatste in de lijst is, wordt de nieuwe waarde rPosition ingesteld op NULL.

Het is mogelijk om een element te verwijderen tijdens een iteratie. Zie het voorbeeld voor RemoveAt.

Opmerking

Vanaf MFC 8.0 is de const-versie van deze methode gewijzigd om te retourneren const CObject* in plaats van const CObject*&. Deze wijziging is aangebracht om de compiler in overeenstemming te brengen met de C++-standaard.

In de volgende tabel ziet u andere lidfuncties die vergelijkbaar zijn met CObList::GetNext.

Class Lid, functie
CPtrList void*& GetNext( POSITION& rPosition );

const void* GetNext( POSITION& rPosition ) const;
CStringList CString& GetNext( POSITION& rPosition );

const CString& GetNext( POSITION& rPosition ) const;

Example

Zie CObList::CObList voor een lijst van de CAge klasse.

CObList list;
POSITION pos;
list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
// Iterate through the list in head-to-tail order.
#ifdef _DEBUG
for (pos = list.GetHeadPosition(); pos != NULL;)
{
   afxDump << list.GetNext(pos) << _T("\n");
}
#endif      

De resultaten van dit programma zijn als volgt:

a CAge at $479C 40
a CAge at $46C0 21

CObList::GetPrev

Hiermee haalt u het lijstelement op dat is geïdentificeerd door rPositionen wordt vervolgens rPosition ingesteld op de POSITION waarde van het vorige item in de lijst.

CObject*& GetPrev(POSITION& rPosition);
const CObject* GetPrev(POSITION& rPosition) const;

Parameterwaarden

rPosition
Een verwijzing naar een POSITION waarde die wordt geretourneerd door een eerdere GetPrev of andere functie-aanroep van leden.

Retourwaarde

Zie de beschrijving van de retourwaarde voor GetHead.

Opmerkingen

U kunt GetPrev deze gebruiken in een omgekeerde iteratielus als u de initiële positie met een aanroep naar GetTailPosition of Find.

U moet ervoor zorgen dat uw POSITION waarde een geldige positie in de lijst vertegenwoordigt. Als deze ongeldig is, wordt de foutopsporingsversie van de Microsoft Foundation Class Library asserts.

Als het opgehaalde element de eerste in de lijst is, wordt de nieuwe waarde rPosition ingesteld op NULL.

Opmerking

Vanaf MFC 8.0 is de const-versie van deze methode gewijzigd om te retourneren const CObject* in plaats van const CObject*&. Deze wijziging is aangebracht om de compiler in overeenstemming te brengen met de C++-standaard.

In de volgende tabel ziet u andere lidfuncties die vergelijkbaar zijn met CObList::GetPrev.

Class Lid, functie
CPtrList void*& GetPrev( POSITION& rPosition );

const void* GetPrev( POSITION& rPosition ) const;
CStringList CString& GetPrev( POSITION& rPosition );

const CString& GetPrev( POSITION& rPosition ) const;

Example

Zie CObList::CObList voor een lijst van de CAge klasse.

CObList list;
POSITION pos;

list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
// Iterate through the list in tail-to-head order.
for (pos = list.GetTailPosition(); pos != NULL;)
{
#ifdef _DEBUG
   afxDump << list.GetPrev(pos) << _T("\n");
#endif
}

De resultaten van dit programma zijn als volgt:

a CAge at $421C 21
a CAge at $421C 40

CObList::GetSize

Retourneert het aantal lijstelementen.

INT_PTR GetSize() const;

Retourwaarde

Het aantal items in de lijst.

Opmerkingen

Roep deze methode aan om het aantal elementen in de lijst op te halen.

In de volgende tabel ziet u andere lidfuncties die vergelijkbaar zijn met CObList::GetSize.

Class Lid, functie
CPtrList INT_PTR GetSize( ) const;
CStringList INT_PTR GetSize( ) const;

Example

Zie CObList::CObList voor een lijst van de CAge klasse.

CObList list;

list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
ASSERT(list.GetSize() == 2);

CObList::GetTail

Hiermee haalt u de CObject aanwijzer op die het tail-element van deze lijst vertegenwoordigt.

CObject*& GetTail();
const CObject*& GetTail() const;

Retourwaarde

Zie de beschrijving van de retourwaarde voor GetHead.

Opmerkingen

U moet ervoor zorgen dat de lijst niet leeg is voordat u aanroept GetTail. Als de lijst leeg is, wordt de foutopsporingsversie van de Microsoft Foundation Class Library weergegeven. Gebruik IsEmpty dit om te controleren of de lijst elementen bevat.

In de volgende tabel ziet u andere lidfuncties die vergelijkbaar zijn met CObList::GetTail.

Class Lid, functie
CPtrList const void*& GetTail( ) const; void*& GetTail( );
CStringList const CString& GetTail( ) const; CString& GetTail( );

Example

Zie CObList::CObList voor een lijst van de CAge klasse.

CObList list;

list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
ASSERT(*(CAge*)list.GetTail() == CAge(21));

CObList::GetTailPosition

Hiermee haalt u de positie op van het tail-element van deze lijst; NULL als de lijst leeg is.

POSITION GetTailPosition() const;

Retourwaarde

Een POSITION waarde die kan worden gebruikt voor het ophalen van iteratie of objectaanwijzer. NULL Als de lijst leeg is.

In de volgende tabel ziet u andere lidfuncties die vergelijkbaar zijn met CObList::GetTailPosition.

Class Lid, functie
CPtrList POSITION GetTailPosition( ) const;
CStringList POSITION GetTailPosition( ) const;

Example

Zie CObList::CObList voor een lijst van de CAge klasse.

CObList list;
POSITION pos;

list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
if ((pos = list.GetTailPosition()) != NULL)
{
    ASSERT(*(CAge*) list.GetAt(pos) == CAge(21));
}     

CObList::InsertAfter

Voegt een element toe aan deze lijst na het element op de opgegeven positie.

POSITION InsertAfter(
    POSITION position,
    CObject* newElement);

Parameterwaarden

position
Een POSITION waarde die wordt geretourneerd door een eerdere GetNext, GetPrevof Find lidfunctieoproep.

newElement
De objectpointer die aan deze lijst moet worden toegevoegd.

In de volgende tabel ziet u andere lidfuncties die vergelijkbaar zijn met CObList::InsertAfter.

Class Lid, functie
CPtrList POSITION InsertAfter( POSITION position , void * newElement );
CStringList POSITION InsertAfter( POSITION position , const CString& newElement );

POSITION InsertAfter( POSITION position , LPCTSTR newElement );

Retourwaarde

Een POSITION waarde die hetzelfde is als de position parameter.

Example

Zie CObList::CObList voor een lijst van de CAge klasse.

CObList list;
POSITION pos1, pos2;
list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
if ((pos1 = list.GetHeadPosition()) != NULL)
{
    pos2 = list.InsertAfter(pos1, new CAge(65));
}
#ifdef _DEBUG
   afxDump.SetDepth(1);
   afxDump << _T("InsertAfter example: ") << &list << _T("\n");
#endif

De resultaten van dit programma zijn als volgt:

InsertAfter example: A CObList with 3 elements
a CAge at $4A44 40
a CAge at $4A64 65
a CAge at $4968 21

CObList::InsertBefore

Hiermee voegt u een element toe aan deze lijst vóór het element op de opgegeven positie.

POSITION InsertBefore(
    POSITION position,
    CObject* newElement);

Parameterwaarden

position
Een POSITION waarde die wordt geretourneerd door een eerdere GetNext, GetPrevof Find lidfunctieoproep.

newElement
De objectpointer die aan deze lijst moet worden toegevoegd.

Retourwaarde

Een POSITION waarde die kan worden gebruikt voor het ophalen van iteratie of objectaanwijzer. NULL Als de lijst leeg is.

In de volgende tabel ziet u andere lidfuncties die vergelijkbaar zijn met CObList::InsertBefore.

Class Lid, functie
CPtrList POSITION InsertBefore( POSITION position , void * newElement );
CStringList POSITION InsertBefore( POSITION position , const CString& newElement );

POSITION InsertBefore( POSITION position , LPCTSTR newElement );

Example

Zie CObList::CObList voor een lijst van de CAge klasse.

CObList list;
POSITION pos1, pos2;
list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
if ((pos1 = list.GetTailPosition()) != NULL)
{
    pos2 = list.InsertBefore(pos1, new CAge(65));
}
#ifdef _DEBUG
   afxDump.SetDepth(1);
   afxDump << _T("InsertBefore example: ") << &list << _T("\n");
#endif      

De resultaten van dit programma zijn als volgt:

InsertBefore example: A CObList with 3 elements
a CAge at $4AE2 40
a CAge at $4B02 65
a CAge at $49E6 21

CObList::IsEmpty

Geeft aan of deze lijst geen elementen bevat.

BOOL IsEmpty() const;

Retourwaarde

Niet-nul als deze lijst leeg is; anders 0.

In de volgende tabel ziet u andere lidfuncties die vergelijkbaar zijn met CObList::IsEmpty.

Class Lid, functie
CPtrList BOOL IsEmpty( ) const;
CStringList BOOL IsEmpty( ) const;

Example

Zie het voorbeeld voor RemoveAll.

CObList::RemoveAll

Hiermee verwijdert u alle elementen uit deze lijst en wordt het bijbehorende CObList geheugen vrijgemaakt.

void RemoveAll();

Opmerkingen

Er wordt geen fout gegenereerd als de lijst al leeg is.

Wanneer u elementen uit een CObListelement verwijdert, verwijdert u de objectpointers uit de lijst. Het is uw verantwoordelijkheid om de objecten zelf te verwijderen.

In de volgende tabel ziet u andere lidfuncties die vergelijkbaar zijn met CObList::RemoveAll.

Class Lid, functie
CPtrList void RemoveAll( );
CStringList void RemoveAll( );

Example

Zie CObList::CObList voor een lijst van de CAge klasse.

CObList list;
CAge* pa1;
CAge* pa2;
ASSERT(list.IsEmpty()); // Yes it is.
list.AddHead(pa1 = new CAge(21));
list.AddHead(pa2 = new CAge(40)); // List now contains (40, 21).
ASSERT(!list.IsEmpty()); // No it isn't.
list.RemoveAll(); // CAges aren't destroyed.
ASSERT(list.IsEmpty()); // Yes it is.
delete pa1;     // Now delete the CAge objects.
delete pa2;

CObList::RemoveAt

Hiermee verwijdert u het opgegeven element uit deze lijst.

void RemoveAt(POSITION position);

Parameterwaarden

position
De positie van het element dat uit de lijst moet worden verwijderd.

Opmerkingen

Wanneer u een element uit een CObListelement verwijdert, verwijdert u de objectaanwijzer uit de lijst. Het is uw verantwoordelijkheid om de objecten zelf te verwijderen.

U moet ervoor zorgen dat uw POSITION waarde een geldige positie in de lijst vertegenwoordigt. Als deze ongeldig is, wordt de foutopsporingsversie van de Microsoft Foundation Class Library asserts.

In de volgende tabel ziet u andere lidfuncties die vergelijkbaar zijn met CObList::RemoveAt.

Class Lid, functie
CPtrList void RemoveAt( POSITION position );
CStringList void RemoveAt( POSITION position );

Example

Wees voorzichtig bij het verwijderen van een element tijdens een lijstiteratie. In het volgende voorbeeld ziet u een verwijderingstechniek die een geldige POSITION waarde garandeert voor GetNext.

Zie CObList::CObList voor een lijst van de 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      

De resultaten van dit programma zijn als volgt:

RemoveAt example: A CObList with 2 elements

a CAge at $4C1E 65

a CAge at $4B22 21

CObList::RemoveHead

Hiermee verwijdert u het element uit de kop van de lijst en wordt er een aanwijzer naar geretourneerd.

CObject* RemoveHead();

Retourwaarde

De CObject aanwijzer eerder aan de kop van de lijst.

Opmerkingen

U moet ervoor zorgen dat de lijst niet leeg is voordat u aanroept RemoveHead. Als de lijst leeg is, wordt de foutopsporingsversie van de Microsoft Foundation Class Library weergegeven. Gebruik IsEmpty dit om te controleren of de lijst elementen bevat.

In de volgende tabel ziet u andere lidfuncties die vergelijkbaar zijn met CObList::RemoveHead.

Class Lid, functie
CPtrList void* RemoveHead( );
CStringList CString RemoveHead( );

Example

Zie CObList::CObList voor een lijst van de CAge klasse.

CObList list;
CAge* pa1;
CAge* pa2;

list.AddHead(pa1 = new CAge(21));
list.AddHead(pa2 = new CAge(40)); // List now contains (40, 21).
ASSERT(*(CAge*)list.RemoveHead() == CAge(40));  // Old head
ASSERT(*(CAge*)list.GetHead() == CAge(21));  // New head
delete pa1;
delete pa2;

CObList::RemoveTail

Hiermee verwijdert u het element uit de staart van de lijst en wordt er een aanwijzer naar geretourneerd.

CObject* RemoveTail();

Retourwaarde

Een aanwijzer naar het object dat zich aan de staart van de lijst bevond.

Opmerkingen

U moet ervoor zorgen dat de lijst niet leeg is voordat u aanroept RemoveTail. Als de lijst leeg is, wordt de foutopsporingsversie van de Microsoft Foundation Class Library weergegeven. Gebruik IsEmpty dit om te controleren of de lijst elementen bevat.

In de volgende tabel ziet u andere lidfuncties die vergelijkbaar zijn met CObList::RemoveTail.

Class Lid, functie
CPtrList void* RemoveTail( );
CStringList CString RemoveTail( );

Example

Zie CObList::CObList voor een lijst van de CAge klasse.

CObList list;
CAge* pa1;
CAge* pa2;

list.AddHead(pa1 = new CAge(21));
list.AddHead(pa2 = new CAge(40)); // List now contains (40, 21).
ASSERT(*(CAge*)list.RemoveTail() == CAge(21));  // Old tail
ASSERT(*(CAge*)list.GetTail() == CAge(40));  // New tail
delete pa1;
delete pa2; // Clean up memory.      

CObList::SetAt

Hiermee stelt u het element op een bepaalde positie in.

void SetAt(
    POSITION pos,
    CObject* newElement);

Parameterwaarden

pos
Het POSITION element dat moet worden ingesteld.

newElement
De CObject aanwijzer die naar de lijst moet worden geschreven.

Opmerkingen

Een variabele van het type POSITION is een sleutel voor de lijst. Het is niet hetzelfde als een index en u kunt niet zelf werken aan een POSITION waarde. SetAt schrijft de CObject aanwijzer naar de opgegeven positie in de lijst.

U moet ervoor zorgen dat uw POSITION waarde een geldige positie in de lijst vertegenwoordigt. Als deze ongeldig is, wordt de foutopsporingsversie van de Microsoft Foundation Class Library asserts.

In de volgende tabel ziet u andere lidfuncties die vergelijkbaar zijn met CObList::SetAt.

Class Lid, functie
CPtrList void SetAt( POSITION pos , const CString& newElement );
CStringList void SetAt( POSITION pos , LPCTSTR newElement );

Example

Zie CObList::CObList voor een lijst van de CAge klasse.

CObList list;
CObject* pa;
POSITION pos;

list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
if ((pos = list.GetTailPosition()) != NULL)
{
   pa = list.GetAt(pos); // Save the old pointer for 
                         //deletion.
   list.SetAt(pos, new CAge(65));  // Replace the tail 
                                     //element.
   delete pa;  // Deletion avoids memory leak.
}
#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("SetAt example: ") << &list << _T("\n");
#endif      

De resultaten van dit programma zijn als volgt:

SetAt example: A CObList with 2 elements
a CAge at $4D98 40
a CAge at $4DB8 65

Zie ook

CObject klasse
Hiërarchiegrafiek
CStringList klasse
CPtrList klasse