Share via


CAtlList-klasse

Opmerking

De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Deze klasse biedt methoden voor het maken en beheren van een lijstobject.

Syntaxis

template<typename E, class ETraits = CElementTraits<E>>
class CAtlList

Parameterwaarden

E
Het elementtype.

ETraits
De code die wordt gebruikt om elementen te kopiëren of te verplaatsen. Zie CElementTraits Class voor meer informatie.

Leden

Openbare typedefs

Naam Description
CAtlList::INARGTYPE

Openbare constructors

Naam Description
CAtlList::CAtlList De constructor.
CAtlList::~CAtlList De destructor.

Openbare methoden

Naam Description
CAtlList::AddHead Roep deze methode aan om een element toe te voegen aan het hoofd van de lijst.
CAtlList::AddHeadList Roep deze methode aan om een bestaande lijst toe te voegen aan het hoofd van de lijst.
CAtlList::AddTail Roep deze methode aan om een element toe te voegen aan de staart van deze lijst.
CAtlList::AddTailList Roep deze methode aan om een bestaande lijst toe te voegen aan de staart van deze lijst.
CAtlList::AssertValid Roep deze methode aan om te bevestigen dat de lijst geldig is.
CAtlList::Zoeken Roep deze methode aan om in de lijst naar het opgegeven element te zoeken.
CAtlList::FindIndex Roep deze methode aan om de positie van een element te verkrijgen, op basis van een indexwaarde.
CAtlList::GetAt Roep deze methode aan om het element op een opgegeven positie in de lijst te retourneren.
CAtlList::GetCount Roep deze methode aan om het aantal objecten in de lijst te retourneren.
CAtlList::GetHead Roep deze methode aan om het element weer te geven aan de kop van de lijst.
CAtlList::GetHeadPosition Roep deze methode aan om de positie van het hoofd van de lijst te verkrijgen.
CAtlList::GetNext Roep deze methode aan om het volgende element uit de lijst te retourneren.
CAtlList::GetPrev Roep deze methode aan om het vorige element uit de lijst te retourneren.
CAtlList::GetTail Roep deze methode aan om het element aan de staart van de lijst te retourneren.
CAtlList::GetTailPosition Roep deze methode aan om de positie van de staart van de lijst te verkrijgen.
CAtlList::InsertAfter Roep deze methode aan om een nieuw element in de lijst in te voegen na de opgegeven positie.
CAtlList::InsertBefore Roep deze methode aan om een nieuw element in de lijst in te voegen vóór de opgegeven positie.
CAtlList::IsEmpty Roep deze methode aan om te bepalen of de lijst leeg is.
CAtlList::MoveToHead Roep deze methode aan om het opgegeven element naar de kop van de lijst te verplaatsen.
CAtlList::MoveToTail Roep deze methode aan om het opgegeven element naar de staart van de lijst te verplaatsen.
CAtlList::RemoveAll Roep deze methode aan om alle elementen uit de lijst te verwijderen.
CAtlList::RemoveAt Roep deze methode aan om één element uit de lijst te verwijderen.
CAtlList::RemoveHead Roep deze methode aan om het element aan de kop van de lijst te verwijderen.
CAtlList::RemoveHeadNoReturn Roep deze methode aan om het element boven aan de lijst te verwijderen zonder een waarde te retourneren.
CAtlList::RemoveTail Roep deze methode aan om het element aan de staart van de lijst te verwijderen.
CAtlList::RemoveTailNoReturn Roep deze methode aan om het element aan de staart van de lijst te verwijderen zonder een waarde te retourneren.
CAtlList::SetAt Roep deze methode aan om de waarde van het element op een bepaalde positie in de lijst in te stellen.
CAtlList::SwapElements Roep deze methode aan om elementen in de lijst te wisselen.

Opmerkingen

De CAtlList klasse ondersteunt geordende lijsten met niet-unique objecten die sequentieel of op waarde toegankelijk zijn. CAtlList lijsten gedragen zich als dubbel gekoppelde lijsten. Elke lijst heeft een kop en een staart en nieuwe elementen (of lijsten in sommige gevallen) kunnen worden toegevoegd aan het einde van de lijst of worden ingevoegd vóór of na specifieke elementen.

De meeste methoden maken gebruik van CAtlList een positiewaarde. Deze waarde wordt gebruikt door de methoden om te verwijzen naar de werkelijke geheugenlocatie waar de elementen worden opgeslagen en mogen niet rechtstreeks worden berekend of voorspeld. Als het nodig is om toegang te krijgen tot het ndeelement in de lijst, retourneert de methode CAtlList::FindIndex de bijbehorende positiewaarde voor een bepaalde index. De methoden CAtlList::GetNext en CAtlList::GetPrev kunnen worden gebruikt om de objecten in de lijst te doorlopen.

Zie ATL-verzamelingsklassen voor meer informatie over de verzamelingsklassen die beschikbaar zijn met ATL.

Requirements

Koptekst: atlcoll.h

CAtlList::AddHead

Roep deze methode aan om een element toe te voegen aan het hoofd van de lijst.

POSITION AddHead();
POSITION AddHead(INARGTYPE element);

Parameterwaarden

element
Het nieuwe element.

Retourwaarde

Retourneert de positie van het zojuist toegevoegde element.

Opmerkingen

Als de eerste versie wordt gebruikt, wordt er een leeg element gemaakt met behulp van de standaardconstructor in plaats van de kopieerconstructor.

Example

// Declare a list of integers
CAtlList<int> myList;

// Add some elements, each to the head of the list.
// As each new element is added, the previous head is
// pushed down the list.
myList.AddHead(42);
myList.AddHead(49);

// Confirm the value currently at the head of the list
ATLASSERT(myList.GetHead() == 49);

// Confirm the value currently at the tail of the list
ATLASSERT(myList.GetTail() == 42);   

CAtlList::AddHeadList

Roep deze methode aan om een bestaande lijst toe te voegen aan het hoofd van de lijst.

void AddHeadList(const CAtlList<E, ETraits>* plNew);

Parameterwaarden

plNew
De lijst die moet worden toegevoegd.

Opmerkingen

De lijst die door plNew wordt verwezen, wordt ingevoegd aan het begin van de bestaande lijst. In builds voor foutopsporing treedt een assertiefout op als plNew gelijk is aan NULL.

Example

// Define two lists of integers
CAtlList<int> myList1;
CAtlList<int> myList2;

// Fill up the first list
myList1.AddTail(1);
myList1.AddTail(2);
myList1.AddTail(3);

// Add an element to the second list
myList2.AddTail(4);

// Insert the first list into the second
myList2.AddHeadList(&myList1);

// The second list now contains:
// 1, 2, 3, 4   

CAtlList::AddTail

Roep deze methode aan om een element toe te voegen aan de staart van deze lijst.

POSITION AddTail();
POSITION AddTail(INARGTYPE element);

Parameterwaarden

element
Het element dat moet worden toegevoegd.

Retourwaarde

Retourneert de POSITIE van het zojuist toegevoegde element.

Opmerkingen

Als de eerste versie wordt gebruikt, wordt er een leeg element gemaakt met behulp van de standaardconstructor in plaats van de kopieerconstructor. Het element wordt toegevoegd aan het einde van de lijst en wordt nu dus de staart. Deze methode kan worden gebruikt met een lege lijst.

Example

// Define the list
CAtlList<int> myList;

// Add elements to the tail
myList.AddTail(1);
myList.AddTail(2);
myList.AddTail(3);

// Confirm the current head of the list
ATLASSERT(myList.GetHead() == 1);

// Confirm the current tail of the list
ATLASSERT(myList.GetTail() == 3);   

CAtlList::AddTailList

Roep deze methode aan om een bestaande lijst toe te voegen aan de staart van deze lijst.

void AddTailList(const CAtlList<E, ETraits>* plNew);

Parameterwaarden

plNew
De lijst die moet worden toegevoegd.

Opmerkingen

De lijst waarnaar wordt verwezen door plNew wordt ingevoegd na het laatste element (indien aanwezig) in het lijstobject. Het laatste element in de plNew-lijst wordt daarom de staart. In builds voor foutopsporing treedt een assertiefout op als plNew gelijk is aan NULL.

Example

// Define two integer lists
CAtlList<int> myList1;
CAtlList<int> myList2;

// Fill up the first list
myList1.AddTail(1);
myList1.AddTail(2);
myList1.AddTail(3);

// Add an element to the second list
myList2.AddTail(4);

// Insert the first list into the second
myList2.AddTailList(&myList1);

// The second list now contains:
// 4, 1, 2, 3   

CAtlList::AssertValid

Roep deze methode aan om te bevestigen dat de lijst geldig is.

void AssertValid() const;

Opmerkingen

In builds voor foutopsporing treedt er een assertiefout op als het lijstobject ongeldig is. Als u geldig wilt zijn, moet een lege lijst zowel de kop als de staart hebben die naar NULL wijst en een lijst die niet leeg is, zowel de kop als de staart naar geldige adressen hebben.

Example

// Define the list
CAtlList<int> myList;

// AssertValid only exists in debug builds
#ifdef _DEBUG
myList.AssertValid();
#endif   

CAtlList::CAtlList

De constructor.

CAtlList(UINT nBlockSize = 10) throw();

Parameterwaarden

nBlockSize
De blokgrootte.

Opmerkingen

De constructor voor het CAtlList object. De blokgrootte is een meting van de hoeveelheid geheugen die is toegewezen wanneer een nieuw element is vereist. Grotere blokgrootten verminderen aanroepen naar geheugentoewijzingsroutines, maar gebruiken meer resources.

Example

// Define two lists
CAtlList<int> myList1;
CAtlList<double> myList2;   

CAtlList::~CAtlList

De destructor.

~CAtlList() throw();

Opmerkingen

Hiermee worden alle toegewezen resources vrijgemaakt, inclusief een aanroep naar CAtlList::RemoveAll om alle elementen uit de lijst te verwijderen.

In builds voor foutopsporing treedt er een assertiefout op als de lijst nog steeds enkele elementen bevat na de aanroep naar RemoveAll.

CAtlList::Zoeken

Roep deze methode aan om in de lijst naar het opgegeven element te zoeken.

POSITION Find(INARGTYPE element, POSITION posStartAfter = NULL) const throw();

Parameterwaarden

element
Het element dat in de lijst moet worden gevonden.

posStartAfter
De beginpositie voor de zoekopdracht. Als er geen waarde is opgegeven, begint de zoekopdracht met het hoofdelement.

Retourwaarde

Retourneert de POSITION-waarde van het element als dit wordt gevonden, anders wordt NULL geretourneerd.

Opmerkingen

In builds voor foutopsporing treedt er een assertiefout op als het lijstobject ongeldig is of als de waarde posStartAfter buiten het bereik valt.

Example

// Define the integer list
CAtlList<int> myList;

// Populate the list
myList.AddTail(100);
myList.AddTail(200);
myList.AddTail(300);
myList.AddTail(400);

// Find the '300' element in the list,
// starting from the list head.
POSITION myPos = myList.Find(300);

// Confirm that the element was found
ATLASSERT(myList.GetAt(myPos) == 300);   

CAtlList::FindIndex

Roep deze methode aan om de positie van een element te verkrijgen, op basis van een indexwaarde.

POSITION FindIndex(size_t iElement) const throw();

Parameterwaarden

iElement
De op nul gebaseerde index van het vereiste lijstelement.

Retourwaarde

Retourneert de bijbehorende POSITION-waarde of NULL als iElement buiten het bereik valt.

Opmerkingen

Met deze methode wordt de POSITIE geretourneerd die overeenkomt met een bepaalde indexwaarde, waardoor toegang tot het ndeelement in de lijst wordt toegestaan.

In builds voor foutopsporing treedt er een assertiefout op als het lijstobject ongeldig is.

Example

// Define the integer list
CAtlList<int> myList;

// Populate the list
for (int i = 0; i < 100; i++)
{
   myList.AddTail(i);
}

// Iterate through the entire list
for (size_t j = 0; j < myList.GetCount(); j++)
{
   size_t i = myList.GetAt(myList.FindIndex(j));
   ATLASSERT(i == j);
}   

CAtlList::GetAt

Roep deze methode aan om het element op een opgegeven positie in de lijst te retourneren.

E& GetAt(POSITION pos) throw();
const E& GetAt(POSITION pos) const throw();

Parameterwaarden

Pos
De POSITION-waarde die een bepaald element aangeeft.

Retourwaarde

Een verwijzing naar of kopie van het element.

Opmerkingen

Als de lijst is const, GetAt retourneert u een kopie van het element. Hierdoor kan de methode alleen aan de rechterkant van een toewijzingsinstructie worden gebruikt en wordt de lijst beschermd tegen wijziging.

Als de lijst niet constis, GetAt wordt een verwijzing naar het element geretourneerd. Hierdoor kan de methode aan beide zijden van een toewijzingsinstructie worden gebruikt en kunnen de lijstvermeldingen dus worden gewijzigd.

In builds voor foutopsporing treedt er een assertiefout op als pos gelijk is aan NULL.

Example

Zie het voorbeeld voor CAtlList::FindIndex.

CAtlList::GetCount

Roep deze methode aan om het aantal objecten in de lijst te retourneren.

size_t GetCount() const throw();

Retourwaarde

Retourneert het aantal elementen in de lijst.

Example

Zie het voorbeeld voor CAtlList::Find.

CAtlList::GetHead

Roep deze methode aan om het element weer te geven aan de kop van de lijst.

E& GetHead() throw();
const E& GetHead() const throw();

Retourwaarde

Retourneert een verwijzing naar of een kopie van het element boven aan de lijst.

Opmerkingen

Als de lijst is const, GetHead retourneert u een kopie van het element boven aan de lijst. Hierdoor kan de methode alleen aan de rechterkant van een toewijzingsinstructie worden gebruikt en wordt de lijst beschermd tegen wijziging.

Als de lijst niet constis, GetHead retourneert u een verwijzing naar het element boven aan de lijst. Hierdoor kan de methode aan beide zijden van een toewijzingsinstructie worden gebruikt en kunnen de lijstvermeldingen dus worden gewijzigd.

In builds voor foutopsporing treedt er een assertiefout op als het hoofd van de lijst verwijst naar NULL.

Example

Zie het voorbeeld voor CAtlList::AddHead.

CAtlList::GetHeadPosition

Roep deze methode aan om de positie van het hoofd van de lijst te verkrijgen.

POSITION GetHeadPosition() const throw();

Retourwaarde

Retourneert de POSITION-waarde die overeenkomt met het element aan de kop van de lijst.

Opmerkingen

Als de lijst leeg is, is de geretourneerde waarde NULL.

Example

// Define the integer list
CAtlList<int> myList;
int i;

// Populate the list
for (i = 0; i < 100; i++)
{
   myList.AddTail(i);
}

// Get the starting position value
POSITION myPos = myList.GetHeadPosition();

// Iterate through the entire list
i = 0;
int j;

do {
   j = myList.GetNext(myPos);
   ATLASSERT(i == j);
   i++;
} while (myPos != NULL);   

CAtlList::GetNext

Roep deze methode aan om het volgende element uit de lijst te retourneren.

E& GetNext(POSITION& pos) throw();
const E& GetNext(POSITION& pos) const throw();

Parameterwaarden

Pos
Een POSITION-waarde, geretourneerd door een eerdere aanroep naar GetNext, CAtlList::GetHeadPosition of een andere CAtlList methode.

Retourwaarde

Als de lijst is const, GetNext retourneert u een kopie van het volgende element van de lijst. Hierdoor kan de methode alleen aan de rechterkant van een toewijzingsinstructie worden gebruikt en wordt de lijst beschermd tegen wijziging.

Als de lijst niet constis, GetNext retourneert u een verwijzing naar het volgende element van de lijst. Hierdoor kan de methode aan beide zijden van een toewijzingsinstructie worden gebruikt en kunnen de lijstvermeldingen dus worden gewijzigd.

Opmerkingen

De POSITION-teller, pos, wordt bijgewerkt om te verwijzen naar het volgende element in de lijst of NULL als er geen elementen meer zijn. In builds voor foutopsporing treedt er een assertiefout op als pos gelijk is aan NULL.

Example

Zie het voorbeeld voor CAtlList::GetHeadPosition.

CAtlList::GetPrev

Roep deze methode aan om het vorige element uit de lijst te retourneren.

E& GetPrev(POSITION& pos) throw();
const E& GetPrev(POSITION& pos) const throw();

Parameterwaarden

Pos
Een POSITION-waarde, geretourneerd door een vorige aanroep naar GetPrev, CAtlList::GetTailPosition of een andere CAtlList methode.

Retourwaarde

Als de lijst is const, GetPrev retourneert u een kopie van een element van de lijst. Hierdoor kan de methode alleen aan de rechterkant van een toewijzingsinstructie worden gebruikt en wordt de lijst beschermd tegen wijziging.

Als de lijst niet constis, GetPrev wordt een verwijzing naar een element van de lijst geretourneerd. Hierdoor kan de methode aan beide zijden van een toewijzingsinstructie worden gebruikt en kunnen de lijstvermeldingen dus worden gewijzigd.

Opmerkingen

De POSITION-teller, pos, wordt bijgewerkt om te verwijzen naar het vorige element in de lijst of NULL als er geen elementen meer zijn. In builds voor foutopsporing treedt er een assertiefout op als pos gelijk is aan NULL.

Example

Zie het voorbeeld voor CAtlList::GetTailPosition.

CAtlList::GetTail

Roep deze methode aan om het element aan de staart van de lijst te retourneren.

E& GetTail() throw();
const E& GetTail() const throw();

Retourwaarde

Retourneert een verwijzing naar of een kopie van het element aan de staart van de lijst.

Opmerkingen

Als de lijst is const, GetTail retourneert u een kopie van het element boven aan de lijst. Hierdoor kan de methode alleen aan de rechterkant van een toewijzingsinstructie worden gebruikt en wordt de lijst beschermd tegen wijziging.

Als de lijst niet constis, GetTail retourneert u een verwijzing naar het element boven aan de lijst. Hierdoor kan de methode aan beide zijden van een toewijzingsinstructie worden gebruikt en kunnen de lijstvermeldingen dus worden gewijzigd.

In builds voor foutopsporing treedt er een assertiefout op als de staart van de lijst verwijst naar NULL.

Example

Zie het voorbeeld voor CAtlList::AddTail.

CAtlList::GetTailPosition

Roep deze methode aan om de positie van de staart van de lijst te verkrijgen.

POSITION GetTailPosition() const throw();

Retourwaarde

Retourneert de POSITION-waarde die overeenkomt met het element aan de staart van de lijst.

Opmerkingen

Als de lijst leeg is, is de geretourneerde waarde NULL.

Example

// Define the integer list
CAtlList<int> myList;
int i;

// Populate the list
for (i = 0; i < 100; i++)
{
   myList.AddHead(i);
}

// Get the starting position value
POSITION myP = myList.GetTailPosition();

// Iterate through the entire list
i = 0;
int j;

do {
   j = myList.GetPrev(myP);
   ATLASSERT(i == j);
   i++;
} while (myP != NULL);   

CAtlList::INARGTYPE

Type dat wordt gebruikt wanneer een element wordt doorgegeven als invoerargument.

typedef ETraits::INARGTYPE INARGTYPE;

CAtlList::InsertAfter

Roep deze methode aan om een nieuw element in de lijst in te voegen na de opgegeven positie.

POSITION InsertAfter(POSITION pos, INARGTYPE element);

Parameterwaarden

Pos
De POSITION-waarde waarna het nieuwe element wordt ingevoegd.

element
Het element dat moet worden ingevoegd.

Retourwaarde

Retourneert de POSITION-waarde van het nieuwe element.

Opmerkingen

In builds voor foutopsporing treedt er een assertiefout op als de lijst niet geldig is, als de invoegbewerking mislukt of als er een poging wordt gedaan om het element na de staart in te voegen.

Example

// Define the integer list
CAtlList<int> myList;

// Populate the list
POSITION myPos = myList.AddHead(1);
myPos = myList.InsertAfter(myPos, 2);
myPos = myList.InsertAfter(myPos, 3);

// Confirm the tail value is as expected
ATLASSERT(myList.GetTail() == 3);   

CAtlList::InsertBefore

Roep deze methode aan om een nieuw element in de lijst in te voegen vóór de opgegeven positie.

POSITION InsertBefore(POSITION pos, INARGTYPE element);

Parameterwaarden

Pos
Het nieuwe element wordt vóór deze POSITION-waarde in de lijst ingevoegd.

element
Het element dat moet worden ingevoegd.

Retourwaarde

Retourneert de POSITION-waarde van het nieuwe element.

Opmerkingen

In builds voor foutopsporing treedt er een assertiefout op als de lijst niet geldig is, als de invoegbewerking mislukt of als er een poging wordt gedaan om het element vóór de kop in te voegen.

Example

// Define the integer list
CAtlList<int> myList;

// Populate the list
POSITION myPos = myList.AddHead(1);
myPos = myList.InsertBefore(myPos, 2);
myPos = myList.InsertBefore(myPos, 3);

// Confirm the head value is as expected
ATLASSERT(myList.GetHead() == 3);  

CAtlList::IsEmpty

Roep deze methode aan om te bepalen of de lijst leeg is.

bool IsEmpty() const throw();

Retourwaarde

Retourneert waar als de lijst geen objecten bevat, anders onwaar.

Example

// Define the integer list
CAtlList<int> myList;

// Populate the list
myList.AddTail(1);
myList.AddTail(2);
myList.AddTail(3);
myList.AddTail(4);

// Confirm not empty
ATLASSERT(myList.IsEmpty() == false);

// Remove the tail element
myList.RemoveTailNoReturn();

// Confirm not empty
ATLASSERT(myList.IsEmpty() == false);

// Remove the head element
myList.RemoveHeadNoReturn();

// Confirm not empty
ATLASSERT(myList.IsEmpty() == false);

// Remove all remaining elements
myList.RemoveAll();

// Confirm empty
ATLASSERT(myList.IsEmpty() == true);   

CAtlList::MoveToHead

Roep deze methode aan om het opgegeven element naar de kop van de lijst te verplaatsen.

void MoveToHead(POSITION pos) throw();

Parameterwaarden

Pos
De POSITION-waarde van het element dat moet worden verplaatst.

Opmerkingen

Het opgegeven element wordt verplaatst van de huidige positie naar het hoofd van de lijst. In builds voor foutopsporing treedt er een assertiefout op als pos gelijk is aan NULL.

Example

// Define the integer list
CAtlList<int> myList;

// Populate the list
myList.AddTail(1);
myList.AddTail(2);
myList.AddTail(3);
myList.AddTail(4);

// Move the tail element to the head
myList.MoveToHead(myList.GetTailPosition());

// Confirm the head is as expected
ATLASSERT(myList.GetHead() == 4);

// Move the head element to the tail
myList.MoveToTail(myList.GetHeadPosition());

// Confirm the tail is as expected
ATLASSERT(myList.GetTail() == 4);   

CAtlList::MoveToTail

Roep deze methode aan om het opgegeven element naar de staart van de lijst te verplaatsen.

void MoveToTail(POSITION pos) throw();

Parameterwaarden

Pos
De POSITION-waarde van het element dat moet worden verplaatst.

Opmerkingen

Het opgegeven element wordt verplaatst van de huidige positie naar de staart van de lijst. In builds voor foutopsporing treedt er een assertiefout op als pos gelijk is aan NULL.

Example

Zie het voorbeeld voor CAtlList::MoveToHead.

CAtlList::RemoveAll

Roep deze methode aan om alle elementen uit de lijst te verwijderen.

void RemoveAll() throw();

Opmerkingen

Met deze methode worden alle elementen uit de lijst verwijderd en wordt het toegewezen geheugen vrijgemaakt. In builds voor foutopsporing wordt een ATLASSERT gegenereerd als alle elementen niet worden verwijderd of als de lijststructuur is beschadigd.

Example

Zie het voorbeeld voor CAtlList::IsEmpty.

CAtlList::RemoveAt

Roep deze methode aan om één element uit de lijst te verwijderen.

void RemoveAt(POSITION pos) throw();

Parameterwaarden

Pos
De POSITION-waarde van het element dat moet worden verwijderd.

Opmerkingen

Het element waarnaar wordt verwezen door pos wordt verwijderd en het geheugen wordt vrijgemaakt. Het is acceptabel om het hoofd of de staart van de lijst te RemoveAt verwijderen.

In builds voor foutopsporing treedt er een assertiefout op als de lijst ongeldig is of als het verwijderen van het element ervoor zorgt dat de lijst toegang krijgt tot geheugen dat geen deel uitmaakt van de lijststructuur.

Example

// Define the integer list
CAtlList<int> myList;

// Populate the list
myList.AddTail(100);
myList.AddTail(200);
myList.AddTail(300);

// Use RemoveAt to remove elements one by one
myList.RemoveAt(myList.Find(100));
myList.RemoveAt(myList.Find(200));
myList.RemoveAt(myList.Find(300));

// Confirm all have been deleted
ATLASSERT(myList.IsEmpty() == true);   

CAtlList::RemoveHead

Roep deze methode aan om het element aan de kop van de lijst te verwijderen.

E RemoveHead();

Retourwaarde

Retourneert het element bovenaan de lijst.

Opmerkingen

Het hoofdelement wordt uit de lijst verwijderd en het geheugen wordt vrijgemaakt. Er wordt een kopie van het element geretourneerd. In builds voor foutopsporing treedt er een assertiefout op als de lijst leeg is.

Example

// Define the integer list
CAtlList<int> myList;

// Populate the list
myList.AddTail(100);
myList.AddTail(200);
myList.AddTail(300);

// Confirm the head of the list
ATLASSERT(myList.GetHead() == 100);

// Remove the head of the list
ATLASSERT(myList.RemoveHead() == 100);

// Confirm the new head of the list
ATLASSERT(myList.GetHead() == 200);   

CAtlList::RemoveHeadNoReturn

Roep deze methode aan om het element boven aan de lijst te verwijderen zonder een waarde te retourneren.

void RemoveHeadNoReturn() throw();

Opmerkingen

Het hoofdelement wordt uit de lijst verwijderd en het geheugen wordt vrijgemaakt. In builds voor foutopsporing treedt er een assertiefout op als de lijst leeg is.

Example

Zie het voorbeeld voor CAtlList::IsEmpty.

CAtlList::RemoveTail

Roep deze methode aan om het element aan de staart van de lijst te verwijderen.

E RemoveTail();

Retourwaarde

Retourneert het element aan de staart van de lijst.

Opmerkingen

Het tail-element wordt uit de lijst verwijderd en er wordt geheugen vrijgemaakt. Er wordt een kopie van het element geretourneerd. In builds voor foutopsporing treedt er een assertiefout op als de lijst leeg is.

Example

// Define the integer list
CAtlList<int> myList;

// Populate the list
myList.AddTail(100);
myList.AddTail(200);
myList.AddTail(300);

// Confirm the tail of the list
ATLASSERT(myList.GetTail() == 300);

// Remove the tail of the list
ATLASSERT(myList.RemoveTail() == 300);

// Confirm the new tail of the list
ATLASSERT(myList.GetTail() == 200);   

CAtlList::RemoveTailNoReturn

Roep deze methode aan om het element aan de staart van de lijst te verwijderen zonder een waarde te retourneren.

void RemoveTailNoReturn() throw();

Opmerkingen

Het tail-element wordt uit de lijst verwijderd en er wordt geheugen vrijgemaakt. In builds voor foutopsporing treedt er een assertiefout op als de lijst leeg is.

Example

Zie het voorbeeld voor CAtlList::IsEmpty.

CAtlList::SetAt

Roep deze methode aan om de waarde van het element op een bepaalde positie in de lijst in te stellen.

void SetAt(POSITION pos, INARGTYPE element);

Parameterwaarden

Pos
De POSITION-waarde die overeenkomt met het element dat moet worden gewijzigd.

element
De waarde van het nieuwe element.

Opmerkingen

Vervangt de bestaande waarde door een element. In builds voor foutopsporing treedt er een assertiefout op als pos gelijk is aan NULL.

Example

// Define the integer list
CAtlList<int> myList;

// Populate the list
myList.AddTail(100);
myList.AddTail(200);

// Use SetAt to change the values stored in the head and
// tail of the list
myList.SetAt(myList.GetHeadPosition(), myList.GetHead() * 10);
myList.SetAt(myList.GetTailPosition(), myList.GetTail() * 10);

// Confirm the values
ATLASSERT(myList.GetHead() == 1000);
ATLASSERT(myList.GetTail() == 2000);   

CAtlList::SwapElements

Roep deze methode aan om elementen in de lijst te wisselen.

void SwapElements(POSITION pos1, POSITION pos2) throw();

Parameterwaarden

pos1
De eerste POSITION-waarde.

pos2
De tweede POSITION-waarde.

Opmerkingen

Hiermee wisselt u de elementen op de twee opgegeven posities. In builds voor foutopsporing treedt er een assertiefout op als een van de positiewaarden gelijk is aan NULL.

Example

// Define the integer list
CAtlList<int> myList;

// Populate the list
for (int i = 0; i < 100; i++)
{
   myList.AddHead(i);
}

// Order is: 99, 98, 97, 96...
ATLASSERT(myList.GetHead() == 99);
ATLASSERT(myList.GetTail() == 0);

// Perform a crude bubble sort
for (int j = 0; j < 100; j++)
{
   for(int i = 0; i < 99; i++)
   {
      if (myList.GetAt(myList.FindIndex(i)) > 
         myList.GetAt(myList.FindIndex(i+1)))
      {
         myList.SwapElements(myList.FindIndex(i), myList.FindIndex(i+1));
      }
   }
}

// Order is: 0, 1, 2, 3...
ATLASSERT(myList.GetHead() == 0);
ATLASSERT(myList.GetTail() == 99);   

Zie ook

CList-klasse
Overzicht van klassen