Compartir vía


CAtlList (clase)

Esta clase proporciona métodos para crear y administrar un objeto de lista.

Sintaxis

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

Parámetros

E
El tipo de elemento.

ETraits
Código usado para copiar o mover elementos. Consulte CElementTraits (clase) para más información.

Miembros

Definiciones de tipos públicas

Nombre Descripción
CAtlList::INARGTYPE

Constructores públicos

Nombre Descripción
CAtlList::CAtlList Constructor .
CAtlList::~CAtlList El destructor .

Métodos públicos

Nombre Descripción
CAtlList::AddHead Llame a este método para agregar un elemento al principio de la lista.
CAtlList::AddHeadList Llame a este método para agregar una lista existente al principio de la lista.
CAtlList::AddTail Llame a este método para agregar un elemento al final de esta lista.
CAtlList::AddTailList Llame a este método para agregar una lista existente al final de esta lista.
CAtlList::AssertValid Llame a este método para confirmar que la lista es válida.
CAtlList::Find Llame a este método para buscar la lista del elemento especificado.
CAtlList::FindIndex Llame a este método para obtener la posición de un elemento, dado un valor de índice.
CAtlList::GetAt Llame a este método para devolver el elemento que se encuentra en una posición especificada de la lista.
CAtlList::GetCount Llame a este método para devolver el número de objetos de la lista.
CAtlList::GetHead Llame a este método para devolver el elemento que se encuentra al principio de la lista.
CAtlList::GetHeadPosition Llame a este método para obtener la posición del principio de la lista.
CAtlList::GetNext Llame a este método para devolver el siguiente elemento de la lista.
CAtlList::GetPrev Llame a este método para devolver el elemento anterior de la lista.
CAtlList::GetTail Llame a este método para devolver el elemento al final de la lista.
CAtlList::GetTailPosition Llame a este método para obtener la posición del final de la lista.
CAtlList::InsertAfter Llame a este método para insertar un nuevo elemento en la lista después de la posición especificada.
CAtlList::InsertBefore Llame a este método para insertar un nuevo elemento en la lista antes de la posición especificada.
CAtlList::IsEmpty Llame a este método para determinar si la lista está vacía.
CAtlList::MoveToHead Llame a este método para mover el elemento especificado al principio de la lista.
CAtlList::MoveToTail Llame a este método para mover el elemento especificado al final de la lista.
CAtlList::RemoveAll Llame a este método para quitar todos los elementos de la lista.
CAtlList::RemoveAt Llame a este método para quitar un único elemento de la lista.
CAtlList::RemoveHead Llame a este método para quitar el elemento situado al principio de la lista.
CAtlList::RemoveHeadNoReturn Llame a este método para quitar el elemento que se encuentra al principio de la lista sin devolver un valor.
CAtlList::RemoveTail Llame a este método para quitar el elemento situado al final de la lista.
CAtlList::RemoveTailNoReturn Llame a este método para quitar el elemento situado al final de la lista sin devolver un valor.
CAtlList::SetAt Llame a este método para establecer el valor del elemento situado en una posición determinada de la lista.
CAtlList::SwapElements Llame a este método para intercambiar elementos de la lista.

Comentarios

La clase CAtlList admite listas ordenadas de objetos no únicos accesibles secuencialmente o por valor. Las listas CAtlList se comportan como listas doblemente vinculadas. Cada lista tiene un principio y un final, y se pueden agregar nuevos elementos (o listas en algunos casos) al final de la lista, o insertarse antes o después de elementos específicos.

La mayoría de los métodos CAtlList usan un valor de posición. Los métodos usan este valor para hacer referencia a la ubicación de memoria real donde se almacenan los elementos y no se deben calcular ni predecir directamente. Si es necesario tener acceso al elemento n de la lista, el método CAtlList::FindIndex devolverá el valor de posición correspondiente para un índice determinado. Los métodos CAtlList::GetNext y CAtlList::GetPrev se pueden usar para recorrer en iteración los objetos de la lista.

Para más información sobre las clases de colección disponibles con ATL, consulte Clases de colección ATL.

Requisitos

Encabezado: atlcoll.h

CAtlList::AddHead

Llame a este método para agregar un elemento al principio de la lista.

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

Parámetros

element
Nuevo elemento.

Valor devuelto

Devuelve la posición del elemento recién agregado.

Comentarios

Si se usa la primera versión, se crea un elemento vacío mediante su constructor predeterminado, en lugar de su constructor de copia.

Ejemplo

// 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

Llame a este método para agregar una lista existente al principio de la lista.

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

Parámetros

plNew
Lista que se va a agregar.

Comentarios

La lista a la que apunta plNew se inserta al principio de la lista existente. En las compilaciones de depuración, se producirá un error de aserción si plNew es igual a NULL.

Ejemplo

// 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

Llame a este método para agregar un elemento al final de esta lista.

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

Parámetros

element
Elemento que se va a agregar.

Valor devuelto

Devuelve la posición del elemento recién agregado.

Comentarios

Si se usa la primera versión, se crea un elemento vacío mediante su constructor predeterminado, en lugar de su constructor de copia. El elemento se agrega al final de la lista, por lo que ahora se convierte en el último. Este método se puede usar con una lista vacía.

Ejemplo

// 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

Llame a este método para agregar una lista existente al final de esta lista.

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

Parámetros

plNew
Lista que se va a agregar.

Comentarios

La lista a la que apunta plNew se inserta después del último elemento (si lo hay) en el objeto de lista. El último elemento de la lista plNew se convierte en el final. En las compilaciones de depuración, se producirá un error de aserción si plNew es igual a NULL.

Ejemplo

// 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

Llame a este método para confirmar que la lista es válida.

void AssertValid() const;

Comentarios

En las compilaciones de depuración, se producirá un error de aserción si el objeto de lista no es válido. Para que sea válido, una lista vacía debe tener tanto el principio como el final apuntando a NULL, y una lista que no esté vacía debe tener tanto el principio como el final apuntando a direcciones válidas.

Ejemplo

// Define the list
CAtlList<int> myList;

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

CAtlList::CAtlList

Constructor .

CAtlList(UINT nBlockSize = 10) throw();

Parámetros

nBlockSize
Tamaño del bloque.

Comentarios

Constructor del objeto CAtlList. El tamaño de bloque es una medida de la cantidad de memoria asignada cuando se requiere un nuevo elemento. Los tamaños de bloque más grandes reducen las llamadas a rutinas de asignación de memoria, pero usan más recursos.

Ejemplo

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

CAtlList::~CAtlList

El destructor .

~CAtlList() throw();

Comentarios

Libera todos los recursos asignados, incluida una llamada a CAtlList::RemoveAll para quitar todos los elementos de la lista.

En las compilaciones de depuración, se producirá un error de aserción si la lista todavía contiene algunos elementos después de la llamada a RemoveAll.

CAtlList::Find

Llame a este método para buscar la lista del elemento especificado.

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

Parámetros

element
Elemento que se va a encontrar en la lista.

posStartAfter
Posición inicial de la búsqueda. Si no se especifica ningún valor, la búsqueda comienza con el elemento del encabezado.

Valor devuelto

Devuelve el valor POSITION del elemento si se encuentra; de lo contrario, devuelve NULL.

Comentarios

En las compilaciones de depuración, se producirá un error de aserción si el objeto de lista no es válido o si el valor posStartAfter está fuera del intervalo.

Ejemplo

// 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

Llame a este método para obtener la posición de un elemento, dado un valor de índice.

POSITION FindIndex(size_t iElement) const throw();

Parámetros

iElement
Índice de base cero del elemento de la lista necesario.

Valor devuelto

Devuelve el valor POSITION correspondiente o NULL si iElement está fuera del intervalo.

Comentarios

Este método devuelve la posición correspondiente a un valor de índice determinado, lo que permite el acceso al elemento n de la lista.

En las compilaciones de depuración, se producirá un error de aserción si el objeto de lista no es válido.

Ejemplo

// 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

Llame a este método para devolver el elemento que se encuentra en una posición especificada de la lista.

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

Parámetros

pos
Valor POSITION que especifica un elemento determinado.

Valor devuelto

Referencia al elemento o copia del elemento.

Comentarios

Si la lista es const, GetAt devuelve una copia del elemento. Esto permite usar el método solo en el lado derecho de una instrucción de asignación y protege la lista frente a modificaciones.

Si la lista no es const, GetAt devuelve una referencia al elemento. Esto permite usar el método en cualquier lado de una instrucción de asignación y, por tanto, permite modificar las entradas de la lista.

En las compilaciones de depuración, se producirá un error de aserción si pos es igual a NULL.

Ejemplo

Vea el ejemplo de CAtlList::FindIndex.

CAtlList::GetCount

Llame a este método para devolver el número de objetos de la lista.

size_t GetCount() const throw();

Valor devuelto

Devuelve el número de elementos de la lista.

Ejemplo

Vea el ejemplo de CAtlList::Find.

CAtlList::GetHead

Llame a este método para devolver el elemento que se encuentra al principio de la lista.

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

Valor devuelto

Devuelve una referencia al elemento situado al principio de la lista, o una copia de este.

Comentarios

Si la lista es const, GetHead devuelve una copia del elemento que se encuentra en el encabezado de la lista. Esto permite usar el método solo en el lado derecho de una instrucción de asignación y protege la lista frente a modificaciones.

Si la lista no es const, GetHead devuelve una referencia al elemento que se encuentra en el encabezado de la lista. Esto permite usar el método en cualquier lado de una instrucción de asignación y, por tanto, permite modificar las entradas de la lista.

En las compilaciones de depuración, se producirá un error de aserción si el encabezado de la lista apunta a NULL.

Ejemplo

Vea el ejemplo de CAtlList::AddHead.

CAtlList::GetHeadPosition

Llame a este método para obtener la posición del principio de la lista.

POSITION GetHeadPosition() const throw();

Valor devuelto

Devuelve el valor POSITION correspondiente al elemento situado al principio de la lista.

Comentarios

Si la lista está vacía, el valor devuelto es NULL.

Ejemplo

// 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

Llame a este método para devolver el siguiente elemento de la lista.

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

Parámetros

pos
Valor POSITION, devuelto por una llamada anterior a GetNext, CAtlList::GetHeadPosition u otro método CAtlList.

Valor devuelto

Si la lista es const, GetNext devuelve una copia del siguiente elemento de la lista. Esto permite usar el método solo en el lado derecho de una instrucción de asignación y protege la lista frente a modificaciones.

Si la lista no es const, GetNext devuelve una referencia al siguiente elemento de la lista. Esto permite usar el método en cualquier lado de una instrucción de asignación y, por tanto, permite modificar las entradas de la lista.

Comentarios

El contador POSITION, pos, se actualiza para que apunte al siguiente elemento de la lista, o NULL si no hay más elementos. En las compilaciones de depuración, se producirá un error de aserción si pos es igual a NULL.

Ejemplo

Vea el ejemplo de CAtlList::GetHeadPosition.

CAtlList::GetPrev

Llame a este método para devolver el elemento anterior de la lista.

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

Parámetros

pos
Valor POSITION, devuelto por una llamada anterior a GetPrev, CAtlList::GetTailPosition u otro método CAtlList.

Valor devuelto

Si la lista es const, GetPrev devuelve una copia de un elemento de la lista. Esto permite usar el método solo en el lado derecho de una instrucción de asignación y protege la lista frente a modificaciones.

Si la lista no es const, GetPrev devuelve una referencia a un elemento de la lista. Esto permite usar el método en cualquier lado de una instrucción de asignación y, por tanto, permite modificar las entradas de la lista.

Comentarios

El contador POSITION, pos, se actualiza para que apunte al elemento anterior de la lista, o NULL si no hay más elementos. En las compilaciones de depuración, se producirá un error de aserción si pos es igual a NULL.

Ejemplo

Vea el ejemplo de CAtlList::GetTailPosition.

CAtlList::GetTail

Llame a este método para devolver el elemento al final de la lista.

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

Valor devuelto

Devuelve una referencia al elemento situado al final de la lista, o una copia de este.

Comentarios

Si la lista es const, GetTail devuelve una copia del elemento que se encuentra en el encabezado de la lista. Esto permite usar el método solo en el lado derecho de una instrucción de asignación y protege la lista frente a modificaciones.

Si la lista no es const, GetTail devuelve una referencia al elemento que se encuentra en el encabezado de la lista. Esto permite usar el método en cualquier lado de una instrucción de asignación y, por tanto, permite modificar las entradas de la lista.

En las compilaciones de depuración, se producirá un error de aserción si el final de la lista apunta a NULL.

Ejemplo

Vea el ejemplo de CAtlList::AddTail.

CAtlList::GetTailPosition

Llame a este método para obtener la posición del final de la lista.

POSITION GetTailPosition() const throw();

Valor devuelto

Devuelve el valor POSITION correspondiente al elemento situado al final de la lista.

Comentarios

Si la lista está vacía, el valor devuelto es NULL.

Ejemplo

// 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

Tipo utilizado cuando se pasa un elemento como argumento de entrada.

typedef ETraits::INARGTYPE INARGTYPE;

CAtlList::InsertAfter

Llame a este método para insertar un nuevo elemento en la lista después de la posición especificada.

POSITION InsertAfter(POSITION pos, INARGTYPE element);

Parámetros

pos
Valor POSITION después del cual se insertará el nuevo elemento.

element
Elemento que se va a insertar.

Valor devuelto

Devuelve el valor POSITION del nuevo elemento.

Comentarios

En las compilaciones de depuración, se producirá un error de aserción si la lista no es válida, si se produce un error en la inserción o si se intenta insertar el elemento después del final.

Ejemplo

// 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

Llame a este método para insertar un nuevo elemento en la lista antes de la posición especificada.

POSITION InsertBefore(POSITION pos, INARGTYPE element);

Parámetros

pos
El nuevo elemento se insertará en la lista antes de este valor POSITION.

element
Elemento que se va a insertar.

Valor devuelto

Devuelve el valor POSITION del nuevo elemento.

Comentarios

En las compilaciones de depuración, se producirá un error de aserción si la lista no es válida, si se produce un error en la inserción o si se intenta insertar el elemento antes del principio.

Ejemplo

// 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

Llame a este método para determinar si la lista está vacía.

bool IsEmpty() const throw();

Valor devuelto

Devuelve true si la lista no contiene objetos; de lo contrario, false.

Ejemplo

// 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

Llame a este método para mover el elemento especificado al principio de la lista.

void MoveToHead(POSITION pos) throw();

Parámetros

pos
Valor POSITION del elemento que se va a mover.

Comentarios

El elemento especificado se mueve de su posición actual al principio de la lista. En las compilaciones de depuración, se producirá un error de aserción si pos es igual a NULL.

Ejemplo

// 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

Llame a este método para mover el elemento especificado al final de la lista.

void MoveToTail(POSITION pos) throw();

Parámetros

pos
Valor POSITION del elemento que se va a mover.

Comentarios

El elemento especificado se mueve de su posición actual al final de la lista. En las compilaciones de depuración, se producirá un error de aserción si pos es igual a NULL.

Ejemplo

Vea el ejemplo de CAtlList::MoveToHead.

CAtlList::RemoveAll

Llame a este método para quitar todos los elementos de la lista.

void RemoveAll() throw();

Comentarios

Este método quita todos los elementos de la lista y libera la memoria asignada. En las compilaciones de depuración, se generará ATLASSERT si no se eliminan todos los elementos o si la estructura de lista se ha dañado.

Ejemplo

Vea el ejemplo de CAtlList::IsEmpty.

CAtlList::RemoveAt

Llame a este método para quitar un único elemento de la lista.

void RemoveAt(POSITION pos) throw();

Parámetros

pos
Valor POSITION del elemento que se quitará.

Comentarios

Se quita el elemento al que hace referencia pos y se libera memoria. Es aceptable usar RemoveAt para quitar el principio o el final de la lista.

En las compilaciones de depuración, se producirá un error de aserción si la lista no es válida o si la eliminación del elemento hace que la lista tenga acceso a memoria que no forma parte de la estructura de lista.

Ejemplo

// 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

Llame a este método para quitar el elemento situado al principio de la lista.

E RemoveHead();

Valor devuelto

Devuelve el elemento que se encuentra al principio de la lista.

Comentarios

El elemento del principio se elimina de la lista y se libera memoria. Se devuelve una copia del elemento. En las compilaciones de depuración, se producirá un error de aserción si la lista está vacía.

Ejemplo

// 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

Llame a este método para quitar el elemento que se encuentra al principio de la lista sin devolver un valor.

void RemoveHeadNoReturn() throw();

Comentarios

El elemento del principio se elimina de la lista y se libera memoria. En las compilaciones de depuración, se producirá un error de aserción si la lista está vacía.

Ejemplo

Vea el ejemplo de CAtlList::IsEmpty.

CAtlList::RemoveTail

Llame a este método para quitar el elemento situado al final de la lista.

E RemoveTail();

Valor devuelto

Devuelve el elemento situado al final de la lista.

Comentarios

El elemento del final se elimina de la lista y se libera memoria. Se devuelve una copia del elemento. En las compilaciones de depuración, se producirá un error de aserción si la lista está vacía.

Ejemplo

// 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

Llame a este método para quitar el elemento situado al final de la lista sin devolver un valor.

void RemoveTailNoReturn() throw();

Comentarios

El elemento del final se elimina de la lista y se libera memoria. En las compilaciones de depuración, se producirá un error de aserción si la lista está vacía.

Ejemplo

Vea el ejemplo de CAtlList::IsEmpty.

CAtlList::SetAt

Llame a este método para establecer el valor del elemento situado en una posición determinada de la lista.

void SetAt(POSITION pos, INARGTYPE element);

Parámetros

pos
Valor POSITION correspondiente al elemento que se va a cambiar.

element
Nuevo valor del elemento.

Comentarios

Reemplaza el valor existente por element. En las compilaciones de depuración, se producirá un error de aserción si pos es igual a NULL.

Ejemplo

// 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

Llame a este método para intercambiar elementos de la lista.

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

Parámetros

pos1
Primer valor POSITION.

pos2
Segundo valor POSITION.

Comentarios

Intercambia los elementos situados en las dos posiciones especificadas. En las compilaciones de depuración, se producirá un error de aserción si cualquier valor de posición es igual a NULL.

Ejemplo

// 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);   

Vea también

CList (clase)
Información general sobre la clase