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