CAtlList, classe
Cette classe fournit des méthodes pour créer et gérer un objet de liste.
Syntaxe
template<typename E, class ETraits = CElementTraits<E>>
class CAtlList
Paramètres
E
Type de l’élément.
ETraits
Code utilisé pour copier ou déplacer des éléments. Pour plus d’informations, consultez la classe CElementTraits.
Membres
Typedefs publics
Nom | Description |
---|---|
CAtlList ::INARGTYPE |
Constructeurs publics
Nom | Description |
---|---|
CAtlList ::CAtlList | Constructeur . |
CAtlList ::~CAtlList | Destructeur. |
Méthodes publiques
Nom | Description |
---|---|
CAtlList ::AddHead | Appelez cette méthode pour ajouter un élément à la tête de la liste. |
CAtlList ::AddHeadList | Appelez cette méthode pour ajouter une liste existante à la tête de la liste. |
CAtlList ::AddTail | Appelez cette méthode pour ajouter un élément à la fin de cette liste. |
CAtlList ::AddTailList | Appelez cette méthode pour ajouter une liste existante à la fin de cette liste. |
CAtlList ::AssertValid | Appelez cette méthode pour confirmer que la liste est valide. |
CAtlList ::Find | Appelez cette méthode pour rechercher la liste de l’élément spécifié. |
CAtlList ::FindIndex | Appelez cette méthode pour obtenir la position d’un élément, en fonction d’une valeur d’index. |
CAtlList ::GetAt | Appelez cette méthode pour renvoyer l’élément à une position spécifiée dans la liste. |
CAtlList ::GetCount | Appelez cette méthode pour retourner le nombre d’objets dans la liste. |
CAtlList ::GetHead | Appelez cette méthode pour renvoyer l’élément à la tête de la liste. |
CAtlList ::GetHeadPosition | Appelez cette méthode pour obtenir la position de la tête de la liste. |
CAtlList ::GetNext | Appelez cette méthode pour renvoyer l’élément suivant de la liste. |
CAtlList ::GetPrev | Appelez cette méthode pour renvoyer l’élément précédent de la liste. |
CAtlList ::GetTail | Appelez cette méthode pour renvoyer l’élément à la fin de la liste. |
CAtlList ::GetTailPosition | Appelez cette méthode pour obtenir la position de la fin de la liste. |
CAtlList ::InsertAfter | Appelez cette méthode pour insérer un nouvel élément dans la liste après la position spécifiée. |
CAtlList ::InsertBefore | Appelez cette méthode pour insérer un nouvel élément dans la liste avant la position spécifiée. |
CAtlList ::IsEmpty | Appelez cette méthode pour déterminer si la liste est vide. |
CAtlList ::MoveToHead | Appelez cette méthode pour déplacer l’élément spécifié vers la tête de la liste. |
CAtlList ::MoveToTail | Appelez cette méthode pour déplacer l’élément spécifié vers la fin de la liste. |
CAtlList ::RemoveAll | Appelez cette méthode pour supprimer tous les éléments de la liste. |
CAtlList ::RemoveAt | Appelez cette méthode pour supprimer un seul élément de la liste. |
CAtlList ::RemoveHead | Appelez cette méthode pour supprimer l’élément à la tête de la liste. |
CAtlList ::RemoveHeadNoReturn | Appelez cette méthode pour supprimer l’élément à la tête de la liste sans retourner de valeur. |
CAtlList ::RemoveTail | Appelez cette méthode pour supprimer l’élément à la fin de la liste. |
CAtlList ::RemoveTailNoReturn | Appelez cette méthode pour supprimer l’élément à la fin de la liste sans retourner de valeur. |
CAtlList ::SetAt | Appelez cette méthode pour définir la valeur de l’élément à une position donnée dans la liste. |
CAtlList ::SwapElements | Appelez cette méthode pour échanger des éléments dans la liste. |
Notes
La CAtlList
classe prend en charge les listes ordonnées d’objets non uniques accessibles séquentiellement ou par valeur. CAtlList
les listes se comportent comme des listes doublement liées. Chaque liste a une tête et une queue, et de nouveaux éléments (ou listes dans certains cas) peuvent être ajoutés à la fin de la liste, ou insérés avant ou après des éléments spécifiques.
La plupart des CAtlList
méthodes utilisent une valeur de position. Cette valeur est utilisée par les méthodes pour référencer l’emplacement de mémoire réel où les éléments sont stockés et ne doit pas être calculé ou prédit directement. S’il est nécessaire d’accéder au nièmeélément de la liste, la méthode CAtlList ::FindIndex retourne la valeur de position correspondante pour un index donné. Les méthodes CAtlList ::GetNext et CAtlList ::GetPrev peuvent être utilisées pour itérer dans les objets de la liste.
Pour plus d’informations sur les classes de collection disponibles avec ATL, consultez les classes de collection ATL.
Spécifications
En-tête : atlcoll.h
CAtlList ::AddHead
Appelez cette méthode pour ajouter un élément à la tête de la liste.
POSITION AddHead();
POSITION AddHead(INARGTYPE element);
Paramètres
élément
Nouvel élément.
Valeur de retour
Retourne la position de l’élément nouvellement ajouté.
Notes
Si la première version est utilisée, un élément vide est créé à l’aide de son constructeur par défaut, plutôt que de son constructeur de copie.
Exemple
// 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
Appelez cette méthode pour ajouter une liste existante à la tête de la liste.
void AddHeadList(const CAtlList<E, ETraits>* plNew);
Paramètres
plNew
Liste à ajouter.
Notes
La liste pointée par plNew est insérée au début de la liste existante. Dans les builds de débogage, une défaillance d’assertion se produit si plNew est égal à NULL.
Exemple
// 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
Appelez cette méthode pour ajouter un élément à la fin de cette liste.
POSITION AddTail();
POSITION AddTail(INARGTYPE element);
Paramètres
élément
Élément à ajouter.
Valeur de retour
Retourne la position de l’élément nouvellement ajouté.
Notes
Si la première version est utilisée, un élément vide est créé à l’aide de son constructeur par défaut, plutôt que de son constructeur de copie. L’élément est ajouté à la fin de la liste et devient donc la queue. Cette méthode peut être utilisée avec une liste vide.
Exemple
// 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
Appelez cette méthode pour ajouter une liste existante à la fin de cette liste.
void AddTailList(const CAtlList<E, ETraits>* plNew);
Paramètres
plNew
Liste à ajouter.
Notes
La liste pointée par plNew est insérée après le dernier élément (le cas échéant) dans l’objet de liste. Le dernier élément de la liste plNew devient donc la queue. Dans les builds de débogage, une défaillance d’assertion se produit si plNew est égal à NULL.
Exemple
// 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
Appelez cette méthode pour confirmer que la liste est valide.
void AssertValid() const;
Notes
Dans les builds de débogage, une défaillance d’assertion se produit si l’objet de liste n’est pas valide. Pour être valide, une liste vide doit avoir à la fois la tête et la fin pointant sur NULL, et une liste qui n’est pas vide doit avoir à la fois la tête et la fin pointant vers des adresses valides.
Exemple
// Define the list
CAtlList<int> myList;
// AssertValid only exists in debug builds
#ifdef _DEBUG
myList.AssertValid();
#endif
CAtlList ::CAtlList
Constructeur .
CAtlList(UINT nBlockSize = 10) throw();
Paramètres
nBlockSize
Taille du bloc.
Notes
Constructeur de l’objet CAtlList
. La taille du bloc est une mesure de la quantité de mémoire allouée lorsqu’un nouvel élément est requis. Les tailles de bloc supérieures réduisent les appels aux routines d’allocation de mémoire, mais utilisent davantage de ressources.
Exemple
// Define two lists
CAtlList<int> myList1;
CAtlList<double> myList2;
CAtlList ::~CAtlList
Destructeur.
~CAtlList() throw();
Notes
Libère toutes les ressources allouées, y compris un appel à CAtlList ::RemoveAll pour supprimer tous les éléments de la liste.
Dans les builds de débogage, une défaillance d’assertion se produit si la liste contient toujours certains éléments après l’appel à RemoveAll
.
CAtlList ::Find
Appelez cette méthode pour rechercher la liste de l’élément spécifié.
POSITION Find(INARGTYPE element, POSITION posStartAfter = NULL) const throw();
Paramètres
élément
Élément à trouver dans la liste.
posStartAfter
Position de début de la recherche. Si aucune valeur n’est spécifiée, la recherche commence par l’élément principal.
Valeur de retour
Retourne la valeur POSITION de l’élément s’il est trouvé, sinon retourne NULL.
Notes
Dans les builds de débogage, une défaillance d’assertion se produit si l’objet de liste n’est pas valide ou si la valeur posStartAfter est hors limites.
Exemple
// 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
Appelez cette méthode pour obtenir la position d’un élément, en fonction d’une valeur d’index.
POSITION FindIndex(size_t iElement) const throw();
Paramètres
iElement
Index de base zéro de l’élément de liste requis.
Valeur de retour
Retourne la valeur POSITION correspondante ou NULL si iElement est hors limites.
Notes
Cette méthode retourne la position correspondant à une valeur d’index donnée, autorisant l’accès au nièmeélément de la liste.
Dans les builds de débogage, une défaillance d’assertion se produit si l’objet de liste n’est pas valide.
Exemple
// 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
Appelez cette méthode pour renvoyer l’élément à une position spécifiée dans la liste.
E& GetAt(POSITION pos) throw();
const E& GetAt(POSITION pos) const throw();
Paramètres
pos
Valeur POSITION spécifiant un élément particulier.
Valeur de retour
Référence à l’élément, ou copie de celui-ci.
Notes
Si la liste est const
, GetAt
retourne une copie de l’élément. Cela permet à la méthode d’être utilisée uniquement sur le côté droit d’une instruction d’affectation et protège la liste contre la modification.
Si la liste n’est pas const
, GetAt
retourne une référence à l’élément. Cela permet à la méthode d’être utilisée de l’un ou l’autre côté d’une instruction d’affectation et permet ainsi aux entrées de liste d’être modifiées.
Dans les builds de débogage, une défaillance d’assertion se produit si pos est égal à NULL.
Exemple
Consultez l’exemple de CAtlList ::FindIndex.
CAtlList ::GetCount
Appelez cette méthode pour retourner le nombre d’objets dans la liste.
size_t GetCount() const throw();
Valeur de retour
Retourne le nombre d'éléments figurant dans la liste.
Exemple
Consultez l’exemple de CAtlList ::Find.
CAtlList ::GetHead
Appelez cette méthode pour renvoyer l’élément à la tête de la liste.
E& GetHead() throw();
const E& GetHead() const throw();
Valeur de retour
Retourne une référence à l’élément à la tête de la liste ou une copie de celui-ci.
Notes
Si la liste est const
, GetHead
retourne une copie de l’élément à la tête de la liste. Cela permet à la méthode d’être utilisée uniquement sur le côté droit d’une instruction d’affectation et protège la liste contre la modification.
Si la liste n’est pas const
, GetHead
retourne une référence à l’élément en tête de la liste. Cela permet à la méthode d’être utilisée de l’un ou l’autre côté d’une instruction d’affectation et permet ainsi aux entrées de liste d’être modifiées.
Dans les builds de débogage, une défaillance d’assertion se produit si le chef de la liste pointe vers NULL.
Exemple
Consultez l’exemple de CAtlList ::AddHead.
CAtlList ::GetHeadPosition
Appelez cette méthode pour obtenir la position de la tête de la liste.
POSITION GetHeadPosition() const throw();
Valeur de retour
Retourne la valeur POSITION correspondant à l’élément en tête de la liste.
Notes
Si la liste est vide, la valeur retournée est NULL.
Exemple
// 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
Appelez cette méthode pour renvoyer l’élément suivant de la liste.
E& GetNext(POSITION& pos) throw();
const E& GetNext(POSITION& pos) const throw();
Paramètres
pos
Valeur POSITION, retournée par un appel précédent à GetNext
, CAtlList ::GetHeadPosition ou autre CAtlList
méthode.
Valeur de retour
Si la liste est const
, GetNext
retourne une copie de l’élément suivant de la liste. Cela permet à la méthode d’être utilisée uniquement sur le côté droit d’une instruction d’affectation et protège la liste contre la modification.
Si la liste n’est pas const
, GetNext
retourne une référence à l’élément suivant de la liste. Cela permet à la méthode d’être utilisée de l’un ou l’autre côté d’une instruction d’affectation et permet ainsi aux entrées de liste d’être modifiées.
Notes
Le compteur POSITION, pos, est mis à jour pour pointer vers l’élément suivant de la liste ou NULL s’il n’y a plus d’éléments. Dans les builds de débogage, une défaillance d’assertion se produit si pos est égal à NULL.
Exemple
Consultez l’exemple de CAtlList ::GetHeadPosition.
CAtlList ::GetPrev
Appelez cette méthode pour renvoyer l’élément précédent de la liste.
E& GetPrev(POSITION& pos) throw();
const E& GetPrev(POSITION& pos) const throw();
Paramètres
pos
Valeur POSITION, retournée par un appel précédent à GetPrev
, CAtlList ::GetTailPosition ou autre CAtlList
méthode.
Valeur de retour
Si la liste est const
, GetPrev
retourne une copie d’un élément de la liste. Cela permet à la méthode d’être utilisée uniquement sur le côté droit d’une instruction d’affectation et protège la liste contre la modification.
Si la liste n’est pas const
, GetPrev
retourne une référence à un élément de la liste. Cela permet à la méthode d’être utilisée de l’un ou l’autre côté d’une instruction d’affectation et permet ainsi aux entrées de liste d’être modifiées.
Notes
Le compteur POSITION, pos, est mis à jour pour pointer vers l’élément précédent de la liste ou NULL s’il n’y a plus d’éléments. Dans les builds de débogage, une défaillance d’assertion se produit si pos est égal à NULL.
Exemple
Consultez l’exemple de CAtlList ::GetTailPosition.
CAtlList ::GetTail
Appelez cette méthode pour renvoyer l’élément à la fin de la liste.
E& GetTail() throw();
const E& GetTail() const throw();
Valeur de retour
Retourne une référence à l’élément situé à la fin de la liste ou une copie de celui-ci.
Notes
Si la liste est const
, GetTail
retourne une copie de l’élément à la tête de la liste. Cela permet à la méthode d’être utilisée uniquement sur le côté droit d’une instruction d’affectation et protège la liste contre la modification.
Si la liste n’est pas const
, GetTail
retourne une référence à l’élément en tête de la liste. Cela permet à la méthode d’être utilisée de l’un ou l’autre côté d’une instruction d’affectation et permet ainsi aux entrées de liste d’être modifiées.
Dans les builds de débogage, un échec d’assertion se produit si la fin de la liste pointe vers NULL.
Exemple
Consultez l’exemple de CAtlList ::AddTail.
CAtlList ::GetTailPosition
Appelez cette méthode pour obtenir la position de la fin de la liste.
POSITION GetTailPosition() const throw();
Valeur de retour
Retourne la valeur POSITION correspondant à l’élément à la fin de la liste.
Notes
Si la liste est vide, la valeur retournée est NULL.
Exemple
// 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 utilisé lorsqu’un élément est passé en tant qu’argument d’entrée.
typedef ETraits::INARGTYPE INARGTYPE;
CAtlList ::InsertAfter
Appelez cette méthode pour insérer un nouvel élément dans la liste après la position spécifiée.
POSITION InsertAfter(POSITION pos, INARGTYPE element);
Paramètres
pos
Valeur POSITION après laquelle le nouvel élément sera inséré.
élément
Élément à insérer.
Valeur de retour
Retourne la valeur POSITION du nouvel élément.
Notes
Dans les builds de débogage, une défaillance d’assertion se produit si la liste n’est pas valide, si l’insertion échoue ou si une tentative d’insertion est effectuée pour insérer l’élément après la fin.
Exemple
// 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
Appelez cette méthode pour insérer un nouvel élément dans la liste avant la position spécifiée.
POSITION InsertBefore(POSITION pos, INARGTYPE element);
Paramètres
pos
Le nouvel élément sera inséré dans la liste avant cette valeur POSITION.
élément
Élément à insérer.
Valeur de retour
Retourne la valeur POSITION du nouvel élément.
Notes
Dans les builds de débogage, une défaillance d’assertion se produit si la liste n’est pas valide, si l’insertion échoue ou si une tentative d’insertion est effectuée pour insérer l’élément avant la tête.
Exemple
// 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
Appelez cette méthode pour déterminer si la liste est vide.
bool IsEmpty() const throw();
Valeur de retour
Retourne true si la liste ne contient aucun objet, sinon false.
Exemple
// 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
Appelez cette méthode pour déplacer l’élément spécifié vers la tête de la liste.
void MoveToHead(POSITION pos) throw();
Paramètres
pos
Valeur POSITION de l’élément à déplacer.
Notes
L’élément spécifié est déplacé de sa position actuelle à la tête de la liste. Dans les builds de débogage, une défaillance d’assertion se produit si pos est égal à NULL.
Exemple
// 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
Appelez cette méthode pour déplacer l’élément spécifié vers la fin de la liste.
void MoveToTail(POSITION pos) throw();
Paramètres
pos
Valeur POSITION de l’élément à déplacer.
Notes
L’élément spécifié est déplacé de sa position actuelle à la fin de la liste. Dans les builds de débogage, une défaillance d’assertion se produit si pos est égal à NULL.
Exemple
Consultez l’exemple de CAtlList ::MoveToHead.
CAtlList ::RemoveAll
Appelez cette méthode pour supprimer tous les éléments de la liste.
void RemoveAll() throw();
Notes
Cette méthode supprime tous les éléments de la liste et libère la mémoire allouée. Dans les builds de débogage, un ATLASSERT est déclenché si tous les éléments ne sont pas supprimés ou si la structure de liste est endommagée.
Exemple
Consultez l’exemple de CAtlList ::IsEmpty.
CAtlList ::RemoveAt
Appelez cette méthode pour supprimer un seul élément de la liste.
void RemoveAt(POSITION pos) throw();
Paramètres
pos
Valeur POSITION de l’élément à supprimer.
Notes
L’élément référencé par pos est supprimé et la mémoire est libérée. Il est acceptable d’utiliser RemoveAt
pour supprimer la tête ou la queue de la liste.
Dans les builds de débogage, une défaillance d’assertion se produit si la liste n’est pas valide ou si la suppression de l’élément entraîne l’accès à la mémoire qui ne fait pas partie de la structure de liste.
Exemple
// 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
Appelez cette méthode pour supprimer l’élément à la tête de la liste.
E RemoveHead();
Valeur de retour
Retourne l’élément en tête de la liste.
Notes
L’élément principal est supprimé de la liste et la mémoire est libérée. Une copie de l’élément est retournée. Dans les builds de débogage, une défaillance d’assertion se produit si la liste est vide.
Exemple
// 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
Appelez cette méthode pour supprimer l’élément à la tête de la liste sans retourner de valeur.
void RemoveHeadNoReturn() throw();
Notes
L’élément principal est supprimé de la liste et la mémoire est libérée. Dans les builds de débogage, une défaillance d’assertion se produit si la liste est vide.
Exemple
Consultez l’exemple de CAtlList ::IsEmpty.
CAtlList ::RemoveTail
Appelez cette méthode pour supprimer l’élément à la fin de la liste.
E RemoveTail();
Valeur de retour
Retourne l’élément à la fin de la liste.
Notes
L’élément tail est supprimé de la liste et la mémoire est libérée. Une copie de l’élément est retournée. Dans les builds de débogage, une défaillance d’assertion se produit si la liste est vide.
Exemple
// 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
Appelez cette méthode pour supprimer l’élément à la fin de la liste sans retourner de valeur.
void RemoveTailNoReturn() throw();
Notes
L’élément tail est supprimé de la liste et la mémoire est libérée. Dans les builds de débogage, une défaillance d’assertion se produit si la liste est vide.
Exemple
Consultez l’exemple de CAtlList ::IsEmpty.
CAtlList ::SetAt
Appelez cette méthode pour définir la valeur de l’élément à une position donnée dans la liste.
void SetAt(POSITION pos, INARGTYPE element);
Paramètres
pos
Valeur POSITION correspondant à l’élément à modifier.
élément
Nouvelle valeur d’élément.
Notes
Remplace la valeur existante par l’élément. Dans les builds de débogage, une défaillance d’assertion se produit si pos est égal à NULL.
Exemple
// 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
Appelez cette méthode pour échanger des éléments dans la liste.
void SwapElements(POSITION pos1, POSITION pos2) throw();
Paramètres
pos1
Première valeur POSITION.
pos2
Deuxième valeur POSITION.
Notes
Échange les éléments aux deux positions spécifiées. Dans les builds de débogage, une défaillance d’assertion se produit si l’une ou l’autre valeur de position est égale à NULL.
Exemple
// 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);