Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
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
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