Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Nota:
La biblioteca Microsoft Foundation Classes (MFC) sigue siendo compatible. Sin embargo, ya no estamos agregando características ni actualizando la documentación.
Admite listas ordenadas de punteros no únicos CObject accesibles secuencialmente o por valor de puntero.
Sintaxis
class CObList : public CObject
Members
Constructores públicos
| Nombre | Description |
|---|---|
CObList::CObList |
Construye una lista vacía para CObject punteros. |
Métodos públicos
| Nombre | Description |
|---|---|
CObList::AddHead |
Agrega un elemento (o todos los elementos de otra lista) al encabezado de la lista (crea un nuevo encabezado). |
CObList::AddTail |
Agrega un elemento (o todos los elementos de otra lista) a la cola de la lista (convierte una cola nueva). |
CObList::Find |
Obtiene la posición de un elemento especificado por el valor de puntero. |
CObList::FindIndex |
Obtiene la posición de un elemento especificado por un índice de base cero. |
CObList::GetAt |
Obtiene el elemento en una posición determinada. |
CObList::GetCount |
Devuelve el número de elementos de esta lista. |
CObList::GetHead |
Devuelve el elemento principal de la lista (no puede estar vacío). |
CObList::GetHeadPosition |
Devuelve la posición del elemento principal de la lista. |
CObList::GetNext |
Obtiene el siguiente elemento para iterar. |
CObList::GetPrev |
Obtiene el elemento anterior para iterar. |
CObList::GetSize |
Devuelve el número de elementos de esta lista. |
CObList::GetTail |
Devuelve el elemento de cola de la lista (no puede estar vacío). |
CObList::GetTailPosition |
Devuelve la posición del elemento de cola de la lista. |
CObList::InsertAfter |
Inserta un nuevo elemento después de una posición determinada. |
CObList::InsertBefore |
Inserta un nuevo elemento antes de una posición determinada. |
CObList::IsEmpty |
Comprueba la condición de lista vacía (sin elementos). |
CObList::RemoveAll |
Quita todos los elementos de esta lista. |
CObList::RemoveAt |
Quita un elemento de esta lista, especificado por posición. |
CObList::RemoveHead |
Quita el elemento del encabezado de la lista. |
CObList::RemoveTail |
Quita el elemento de la cola de la lista. |
CObList::SetAt |
Establece el elemento en una posición determinada. |
Observaciones
CObList las listas se comportan como listas vinculadas doblemente.
Una variable de tipo POSITION es una clave para la lista. Puede usar una POSITION variable como iterador para recorrer una lista secuencialmente y como marcador para contener un lugar. Sin embargo, una posición no es la misma que un índice.
La inserción de elementos es muy rápida en el encabezado de lista, en la cola y en un conocido POSITION. Se necesita una búsqueda secuencial para buscar un elemento por valor o índice. Esta búsqueda puede ser lenta si la lista es larga.
CObList incorpora la macro para admitir la IMPLEMENT_SERIAL serialización y el volcado de sus elementos. Si una lista de CObject punteros se almacena en un archivo, ya sea con un operador de inserción sobrecargado o con la Serialize función miembro, cada CObject elemento se serializa a su vez.
Si necesita un volcado de memoria de elementos individuales CObject en la lista, debe establecer la profundidad del contexto de volcado en 1 o superior.
Cuando se elimina un CObList objeto o cuando se quitan sus elementos, solo se quitan los CObject punteros, no los objetos a los que hacen referencia.
Puede derivar sus propias clases de CObList. La nueva clase de lista, diseñada para contener punteros a objetos derivados de CObject, agrega nuevos miembros de datos y nuevas funciones miembro. Tenga en cuenta que la lista resultante no es estrictamente segura, ya que permite la inserción de cualquier CObject puntero.
Nota:
Debe usar la IMPLEMENT_SERIAL macro en la implementación de la clase derivada si pretende serializar la lista.
Para obtener más información sobre el uso CObListde , consulte el artículo Colecciones.
Jerarquía de herencia
CObList
Requisitos
Encabezado: afxcoll.h
CObList::AddHead
Agrega un nuevo elemento o lista de elementos al encabezado de esta lista.
POSITION AddHead(CObject* newElement);
void AddHead(CObList* pNewList);
Parámetros
newElement
Puntero CObject que se va a agregar a esta lista.
pNewList
Puntero a otra CObList lista. Los elementos de pNewList se agregarán a esta lista.
Valor devuelto
La primera versión devuelve el POSITION valor del elemento recién insertado.
En la tabla siguiente se muestran otras funciones miembro similares a CObList::AddHead.
| Class | Función miembro |
|---|---|
CPtrList |
POSITION AddHead( void * newElement );void AddHead( CPtrList * pNewList ); |
CStringList |
POSITION AddHead(const CString& newElement );POSITION AddHead(LPCTSTR newElement );void AddHead(CStringList * pNewList ); |
Observaciones
La lista puede estar vacía antes de la operación.
Example
Consulte CObList::CObList para obtener una lista de la CAge clase .
CObList list;
list.AddHead(new CAge(21)); // 21 is now at head.
list.AddHead(new CAge(40)); // 40 replaces 21 at head.
#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("AddHead example: ") << &list << _T("\n");
#endif
Los resultados de este programa son los siguientes:
AddHead example: A CObList with 2 elements
a CAge at $44A8 40
a CAge at $442A 21
CObList::AddTail
Agrega un nuevo elemento o lista de elementos al final de esta lista.
POSITION AddTail(CObject* newElement);
void AddTail(CObList* pNewList);
Parámetros
newElement
Puntero CObject que se va a agregar a esta lista.
pNewList
Puntero a otra CObList lista. Los elementos de pNewList se agregarán a esta lista.
Valor devuelto
La primera versión devuelve el POSITION valor del elemento recién insertado.
Observaciones
La lista puede estar vacía antes de la operación.
En la tabla siguiente se muestran otras funciones miembro similares a CObList::AddTail.
| Class | Función miembro |
|---|---|
CPtrList |
POSITION AddTail( void * newElement );void AddTail( CPtrList * pNewList ); |
CStringList |
POSITION AddTail( const CString& newElement );POSITION AddTail( LPCTSTR newElement );void AddTail( CStringList * pNewList ); |
Example
Consulte CObList::CObList para obtener una lista de la CAge clase .
CObList list;
list.AddTail(new CAge(21));
list.AddTail(new CAge(40)); // List now contains (21, 40).
#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("AddTail example: ") << &list << _T("\n");
#endif
Los resultados de este programa son los siguientes:
AddTail example: A CObList with 2 elements
a CAge at $444A 21
a CAge at $4526 40
CObList::CObList
Construye una lista de punteros vacía CObject .
CObList(INT_PTR nBlockSize = 10);
Parámetros
nBlockSize
Granularidad de asignación de memoria para extender la lista.
Observaciones
A medida que crece la lista, la memoria se asigna en unidades de nBlockSize entradas. Si se produce un error en la asignación de memoria, se produce una CMemoryException excepción .
En la tabla siguiente se muestran otras funciones miembro similares a CObList::CObList.
| Class | Función miembro |
|---|---|
CPtrList |
CPtrList( INT_PTR nBlockSize = 10 ); |
CStringList |
CStringList( INT_PTR nBlockSize = 10 ); |
Example
A continuación se muestra una lista de la CObjectclase CAge derivada de que se usa en todos los ejemplos de colección:
// Simple CObject-derived class for CObList and other examples
class CAge : public CObject
{
DECLARE_SERIAL(CAge)
private:
int m_years;
public:
CAge() { m_years = 0; }
CAge(int age) { m_years = age; }
CAge(const CAge& a) { m_years = a.m_years; } // Copy constructor
void Serialize(CArchive& ar);
void AssertValid() const;
const CAge& operator=(const CAge& a)
{
m_years = a.m_years; return *this;
}
BOOL operator==(CAge a)
{
return m_years == a.m_years;
}
#ifdef _DEBUG
void Dump(CDumpContext& dc) const
{
CObject::Dump(dc);
dc << m_years;
}
#endif
};
A continuación se muestra un ejemplo de uso del CObList constructor:
CObList list(20); // List on the stack with blocksize = 20.
CObList* plist = new CObList; // List on the heap with default
// blocksize.
CObList::Find
Busca secuencialmente la lista para buscar el primer CObject puntero que coincida con el puntero especificado CObject .
POSITION Find(
CObject* searchValue,
POSITION startAfter = NULL) const;
Parámetros
searchValue
Puntero de objeto que se va a encontrar en esta lista.
startAfter
Posición inicial de la búsqueda.
Valor devuelto
Valor POSITION que se puede usar para la recuperación de iteración o puntero de objeto; NULL si no se encuentra el objeto.
Observaciones
Tenga en cuenta que se comparan los valores de puntero, no el contenido de los objetos.
En la tabla siguiente se muestran otras funciones miembro similares a CObList::Find.
| Class | Función miembro |
|---|---|
CPtrList |
POSITION Find( void *searchValue , POSITION startAfter = NULL ) const; |
CStringList |
POSITION Find( LPCTSTR searchValue , POSITION startAfter = NULL ) const; |
Example
Consulte CObList::CObList para obtener una lista de la CAge clase .
CObList list;
CAge* pa1;
CAge* pa2;
POSITION pos;
list.AddHead(pa1 = new CAge(21));
list.AddHead(pa2 = new CAge(40)); // List now contains (40, 21).
if ((pos = list.Find(pa1)) != NULL) // Hunt for pa1
{ // starting at head by default.
ASSERT(*(CAge*)list.GetAt(pos) == CAge(21));
}
CObList::FindIndex
Usa el valor de nIndex como índice en la lista.
POSITION FindIndex(INT_PTR nIndex) const;
Parámetros
nIndex
Índice de base cero del elemento de lista que se va a encontrar.
Valor devuelto
Valor POSITION que se puede usar para la iteración o la recuperación del puntero de objeto; NULL si nIndex es demasiado grande. (El marco genera una aserción si nIndex es negativa).
Observaciones
Inicia un examen secuencial desde el encabezado de la lista y se detiene en el nºelemento.
En la tabla siguiente se muestran otras funciones miembro similares a CObList::FindIndex.
| Class | Función miembro |
|---|---|
CPtrList |
POSITION FindIndex( INT_PTR nIndex ) const; |
CStringList |
POSITION FindIndex( INT_PTR nIndex ) const; |
Example
Consulte CObList::CObList para obtener una lista de la CAge clase .
CObList list;
POSITION pos;
list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
if ((pos = list.FindIndex(0)) != NULL)
{
ASSERT(*(CAge*)list.GetAt(pos) == CAge(40));
}
CObList::GetAt
Una variable de tipo POSITION es una clave para la lista.
CObject*& GetAt(POSITION position);
const CObject*& GetAt(POSITION position) const;
Parámetros
position
Valor POSITION devuelto por una llamada de función miembro o Find anteriorGetHeadPosition.
Valor devuelto
Consulte la descripción del valor devuelto para GetHead.
Observaciones
No es lo mismo que un índice y no puede operar en un POSITION valor usted mismo.
GetAt recupera el CObject puntero asociado a una posición determinada.
Debe asegurarse de que el POSITION valor representa una posición válida en la lista. Si no es válido, la versión de depuración de la biblioteca microsoft Foundation Class afirma.
En la tabla siguiente se muestran otras funciones miembro similares a CObList::GetAt.
| Class | Función miembro |
|---|---|
CPtrList |
const void*& GetAt( POSITION position ) const;void*& GetAt( POSITION position ); |
CStringList |
const CString& GetAt( POSITION position ) const;CString& GetAt( POSITION position ); |
Example
Vea el ejemplo de FindIndex.
CObList::GetCount
Obtiene el número de elementos de esta lista.
INT_PTR GetCount() const;
Valor devuelto
Valor entero que contiene el recuento de elementos.
En la tabla siguiente se muestran otras funciones miembro similares a CObList::GetCount.
| Class | Función miembro |
|---|---|
CPtrList |
INT_PTR GetCount( ) const; |
CStringList |
INT_PTR GetCount( ) const; |
Example
Consulte CObList::CObList para obtener una lista de la CAge clase .
CObList list;
list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
ASSERT(list.GetCount() == 2);
CObList::GetHead
Obtiene el CObject puntero que representa el elemento principal de esta lista.
CObject*& GetHead();
const CObject*& GetHead() const;
Valor devuelto
Si se accede a la lista a través de un puntero a , const CObListGetHead devuelve un CObject puntero. Esto permite que la función se use solo en el lado derecho de una instrucción de asignación y, por tanto, protege la lista de modificaciones.
Si se accede directamente a la lista o a través de un puntero a , CObListGetHead devuelve una referencia a un CObject puntero. Esto permite que la función se use en cualquier lado de una instrucción de asignación y, por tanto, permite modificar las entradas de lista.
Observaciones
Debe asegurarse de que la lista no está vacía antes de llamar a GetHead. Si la lista está vacía, la versión de depuración de la biblioteca microsoft Foundation Class afirma. Use IsEmpty para comprobar que la lista contiene elementos.
En la tabla siguiente se muestran otras funciones miembro similares a CObList::GetHead.
| Class | Función miembro |
|---|---|
CPtrList |
const void*& GetHead( ) const; void*& GetHead( ); |
CStringList |
const CString& GetHead( ) const; CString& GetHead( ); |
Example
Consulte CObList::CObList para obtener una lista de la CAge clase .
En el ejemplo siguiente se muestra el uso de GetHead en el lado izquierdo de una instrucción de asignación.
const CObList* cplist;
CObList* plist = new CObList;
CAge* page1 = new CAge(21);
CAge* page2 = new CAge(30);
CAge* page3 = new CAge(40);
plist->AddHead(page1);
plist->AddHead(page2); // List now contains (30, 21).
// The following statement REPLACES the head element.
plist->GetHead() = page3; // List now contains (40, 21).
ASSERT(*(CAge*)plist->GetHead() == CAge(40));
cplist = plist; // cplist is a pointer to a const list.
// cplist->GetHead() = page3; // Error: can't assign a pointer to a const list
ASSERT(*(CAge*)plist->GetHead() == CAge(40)); // OK
delete page1;
delete page2;
delete page3;
delete plist; // Cleans up memory.
CObList::GetHeadPosition
Obtiene la posición del elemento principal de esta lista.
POSITION GetHeadPosition() const;
Valor devuelto
Valor POSITION que se puede usar para la recuperación de iteración o puntero de objeto; NULL si la lista está vacía.
En la tabla siguiente se muestran otras funciones miembro similares a CObList::GetHeadPosition.
| Class | Función miembro |
|---|---|
CPtrList |
POSITION GetHeadPosition( ) const; |
CStringList |
POSITION GetHeadPosition( ) const; |
Example
Consulte CObList::CObList para obtener una lista de la CAge clase .
CObList list;
POSITION pos;
list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
if ((pos = list.GetHeadPosition()) != NULL)
{
ASSERT(*(CAge*)list.GetAt(pos) == CAge(40));
}
CObList::GetNext
Obtiene el elemento de lista identificado por rPositiony, a continuación, establece rPosition en el POSITION valor de la entrada siguiente de la lista.
CObject*& GetNext(POSITION& rPosition);
const CObject* GetNext(POSITION& rPosition) const;
Parámetros
rPosition
Referencia a un POSITION valor devuelto por una llamada anterior GetNextde función miembro , GetHeadPositionu otra.
Valor devuelto
Consulte la descripción del valor devuelto para GetHead.
Observaciones
Puede usar GetNext en un bucle de iteración hacia delante si establece la posición inicial con una llamada a GetHeadPosition o Find.
Debe asegurarse de que el POSITION valor representa una posición válida en la lista. Si no es válido, la versión de depuración de la biblioteca microsoft Foundation Class afirma.
Si el elemento recuperado es el último de la lista, el nuevo valor de rPosition se establece NULLen .
Es posible quitar un elemento durante una iteración. Vea el ejemplo de RemoveAt.
Nota:
A partir de MFC 8.0, la versión const de este método ha cambiado para devolver const CObject* en lugar de const CObject*&. Este cambio se realizó para que el compilador se ajuste al estándar de C++.
En la tabla siguiente se muestran otras funciones miembro similares a CObList::GetNext.
| Class | Función miembro |
|---|---|
CPtrList |
void*& GetNext( POSITION&
rPosition
);
const void* GetNext( POSITION&
rPosition
) const;
|
CStringList |
CString& GetNext( POSITION&
rPosition
);
const CString& GetNext( POSITION&
rPosition
) const;
|
Example
Consulte CObList::CObList para obtener una lista de la CAge clase .
CObList list;
POSITION pos;
list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
// Iterate through the list in head-to-tail order.
#ifdef _DEBUG
for (pos = list.GetHeadPosition(); pos != NULL;)
{
afxDump << list.GetNext(pos) << _T("\n");
}
#endif
Los resultados de este programa son los siguientes:
a CAge at $479C 40
a CAge at $46C0 21
CObList::GetPrev
Obtiene el elemento de lista identificado por rPositiony, a continuación, establece rPosition en el POSITION valor de la entrada anterior de la lista.
CObject*& GetPrev(POSITION& rPosition);
const CObject* GetPrev(POSITION& rPosition) const;
Parámetros
rPosition
Referencia a un POSITION valor devuelto por una llamada de función miembro anterior GetPrev u otra.
Valor devuelto
Consulte la descripción del valor devuelto para GetHead.
Observaciones
Puede usar GetPrev en un bucle de iteración inversa si establece la posición inicial con una llamada a GetTailPosition o Find.
Debe asegurarse de que el POSITION valor representa una posición válida en la lista. Si no es válido, la versión de depuración de la biblioteca microsoft Foundation Class afirma.
Si el elemento recuperado es el primero de la lista, el nuevo valor de rPosition se establece NULLen .
Nota:
A partir de MFC 8.0, la versión const de este método ha cambiado para devolver const CObject* en lugar de const CObject*&. Este cambio se realizó para que el compilador se ajuste al estándar de C++.
En la tabla siguiente se muestran otras funciones miembro similares a CObList::GetPrev.
| Class | Función miembro |
|---|---|
CPtrList |
void*& GetPrev( POSITION&
rPosition
);
const void* GetPrev( POSITION&
rPosition
) const;
|
CStringList |
CString& GetPrev( POSITION&
rPosition
);
const CString& GetPrev( POSITION&
rPosition
) const;
|
Example
Consulte CObList::CObList para obtener una lista de la CAge clase .
CObList list;
POSITION pos;
list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
// Iterate through the list in tail-to-head order.
for (pos = list.GetTailPosition(); pos != NULL;)
{
#ifdef _DEBUG
afxDump << list.GetPrev(pos) << _T("\n");
#endif
}
Los resultados de este programa son los siguientes:
a CAge at $421C 21
a CAge at $421C 40
CObList::GetSize
Devuelve el número de elementos de lista.
INT_PTR GetSize() const;
Valor devuelto
Número de elementos de la lista.
Observaciones
Llame a este método para recuperar el número de elementos de la lista.
En la tabla siguiente se muestran otras funciones miembro similares a CObList::GetSize.
| Class | Función miembro |
|---|---|
CPtrList |
INT_PTR GetSize( ) const; |
CStringList |
INT_PTR GetSize( ) const; |
Example
Consulte CObList::CObList para obtener una lista de la CAge clase .
CObList list;
list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
ASSERT(list.GetSize() == 2);
CObList::GetTail
Obtiene el CObject puntero que representa el elemento de cola de esta lista.
CObject*& GetTail();
const CObject*& GetTail() const;
Valor devuelto
Consulte la descripción del valor devuelto para GetHead.
Observaciones
Debe asegurarse de que la lista no está vacía antes de llamar a GetTail. Si la lista está vacía, la versión de depuración de la biblioteca microsoft Foundation Class afirma. Use IsEmpty para comprobar que la lista contiene elementos.
En la tabla siguiente se muestran otras funciones miembro similares a CObList::GetTail.
| Class | Función miembro |
|---|---|
CPtrList |
const void*& GetTail( ) const; void*& GetTail( ); |
CStringList |
const CString& GetTail( ) const; CString& GetTail( ); |
Example
Consulte CObList::CObList para obtener una lista de la CAge clase .
CObList list;
list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
ASSERT(*(CAge*)list.GetTail() == CAge(21));
CObList::GetTailPosition
Obtiene la posición del elemento de cola de esta lista; NULL si la lista está vacía.
POSITION GetTailPosition() const;
Valor devuelto
Valor POSITION que se puede usar para la recuperación de iteración o puntero de objeto; NULL si la lista está vacía.
En la tabla siguiente se muestran otras funciones miembro similares a CObList::GetTailPosition.
| Class | Función miembro |
|---|---|
CPtrList |
POSITION GetTailPosition( ) const; |
CStringList |
POSITION GetTailPosition( ) const; |
Example
Consulte CObList::CObList para obtener una lista de la CAge clase .
CObList list;
POSITION pos;
list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
if ((pos = list.GetTailPosition()) != NULL)
{
ASSERT(*(CAge*) list.GetAt(pos) == CAge(21));
}
CObList::InsertAfter
Agrega un elemento a esta lista después del elemento en la posición especificada.
POSITION InsertAfter(
POSITION position,
CObject* newElement);
Parámetros
position
Valor POSITION devuelto por una llamada de función miembro , GetPrevo Find anteriorGetNext.
newElement
Puntero de objeto que se va a agregar a esta lista.
En la tabla siguiente se muestran otras funciones miembro similares a CObList::InsertAfter.
| Class | Función miembro |
|---|---|
CPtrList |
POSITION InsertAfter( POSITION position , void * newElement ); |
CStringList |
POSITION InsertAfter( POSITION position , const CString& newElement );POSITION InsertAfter( POSITION position , LPCTSTR newElement ); |
Valor devuelto
Valor POSITION que es el mismo que el position parámetro .
Example
Consulte CObList::CObList para obtener una lista de la CAge clase .
CObList list;
POSITION pos1, pos2;
list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
if ((pos1 = list.GetHeadPosition()) != NULL)
{
pos2 = list.InsertAfter(pos1, new CAge(65));
}
#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("InsertAfter example: ") << &list << _T("\n");
#endif
Los resultados de este programa son los siguientes:
InsertAfter example: A CObList with 3 elements
a CAge at $4A44 40
a CAge at $4A64 65
a CAge at $4968 21
CObList::InsertBefore
Agrega un elemento a esta lista antes del elemento en la posición especificada.
POSITION InsertBefore(
POSITION position,
CObject* newElement);
Parámetros
position
Valor POSITION devuelto por una llamada de función miembro , GetPrevo Find anteriorGetNext.
newElement
Puntero de objeto que se va a agregar a esta lista.
Valor devuelto
Valor POSITION que se puede usar para la recuperación de iteración o puntero de objeto; NULL si la lista está vacía.
En la tabla siguiente se muestran otras funciones miembro similares a CObList::InsertBefore.
| Class | Función miembro |
|---|---|
CPtrList |
POSITION InsertBefore( POSITION position , void * newElement ); |
CStringList |
POSITION InsertBefore( POSITION position , const CString& newElement );POSITION InsertBefore( POSITION position , LPCTSTR newElement ); |
Example
Consulte CObList::CObList para obtener una lista de la CAge clase .
CObList list;
POSITION pos1, pos2;
list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
if ((pos1 = list.GetTailPosition()) != NULL)
{
pos2 = list.InsertBefore(pos1, new CAge(65));
}
#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("InsertBefore example: ") << &list << _T("\n");
#endif
Los resultados de este programa son los siguientes:
InsertBefore example: A CObList with 3 elements
a CAge at $4AE2 40
a CAge at $4B02 65
a CAge at $49E6 21
CObList::IsEmpty
Indica si esta lista no contiene elementos.
BOOL IsEmpty() const;
Valor devuelto
Distinto de cero si esta lista está vacía; de lo contrario, 0.
En la tabla siguiente se muestran otras funciones miembro similares a CObList::IsEmpty.
| Class | Función miembro |
|---|---|
CPtrList |
BOOL IsEmpty( ) const; |
CStringList |
BOOL IsEmpty( ) const; |
Example
Vea el ejemplo de RemoveAll.
CObList::RemoveAll
Quita todos los elementos de esta lista y libera la memoria asociada CObList .
void RemoveAll();
Observaciones
No se genera ningún error si la lista ya está vacía.
Cuando se quitan elementos de , CObListse quitan los punteros de objeto de la lista. Es su responsabilidad eliminar los propios objetos.
En la tabla siguiente se muestran otras funciones miembro similares a CObList::RemoveAll.
| Class | Función miembro |
|---|---|
CPtrList |
void RemoveAll( ); |
CStringList |
void RemoveAll( ); |
Example
Consulte CObList::CObList para obtener una lista de la CAge clase .
CObList list;
CAge* pa1;
CAge* pa2;
ASSERT(list.IsEmpty()); // Yes it is.
list.AddHead(pa1 = new CAge(21));
list.AddHead(pa2 = new CAge(40)); // List now contains (40, 21).
ASSERT(!list.IsEmpty()); // No it isn't.
list.RemoveAll(); // CAges aren't destroyed.
ASSERT(list.IsEmpty()); // Yes it is.
delete pa1; // Now delete the CAge objects.
delete pa2;
CObList::RemoveAt
Quita el elemento especificado de esta lista.
void RemoveAt(POSITION position);
Parámetros
position
Posición del elemento que se va a quitar de la lista.
Observaciones
Cuando se quita un elemento de , CObListse quita el puntero de objeto de la lista. Es su responsabilidad eliminar los propios objetos.
Debe asegurarse de que el POSITION valor representa una posición válida en la lista. Si no es válido, la versión de depuración de la biblioteca microsoft Foundation Class afirma.
En la tabla siguiente se muestran otras funciones miembro similares a CObList::RemoveAt.
| Class | Función miembro |
|---|---|
CPtrList |
void RemoveAt( POSITION position ); |
CStringList |
void RemoveAt( POSITION position ); |
Example
Tenga cuidado al quitar un elemento durante una iteración de lista. En el ejemplo siguiente se muestra una técnica de eliminación que garantiza un valor válido POSITION para GetNext.
Consulte CObList::CObList para obtener una lista de la CAge clase .
CObList list;
POSITION pos1, pos2;
CObject* pa;
list.AddHead(new CAge(21));
list.AddHead(new CAge(40));
list.AddHead(new CAge(65)); // List now contains (65 40, 21).
for (pos1 = list.GetHeadPosition(); (pos2 = pos1) != NULL;)
{
if (*(CAge*)list.GetNext(pos1) == CAge(40))
{
pa = list.GetAt(pos2); // Save the old pointer for
//deletion.
list.RemoveAt(pos2);
delete pa; // Deletion avoids memory leak.
}
}
#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("RemoveAt example: ") << &list << _T("\n");
#endif
Los resultados de este programa son los siguientes:
RemoveAt example: A CObList with 2 elements
a CAge at $4C1E 65
a CAge at $4B22 21
CObList::RemoveHead
Quita el elemento del encabezado de la lista y devuelve un puntero a él.
CObject* RemoveHead();
Valor devuelto
Puntero CObject anteriormente al principio de la lista.
Observaciones
Debe asegurarse de que la lista no está vacía antes de llamar a RemoveHead. Si la lista está vacía, la versión de depuración de la biblioteca microsoft Foundation Class afirma. Use IsEmpty para comprobar que la lista contiene elementos.
En la tabla siguiente se muestran otras funciones miembro similares a CObList::RemoveHead.
| Class | Función miembro |
|---|---|
CPtrList |
void* RemoveHead( ); |
CStringList |
CString RemoveHead( ); |
Example
Consulte CObList::CObList para obtener una lista de la CAge clase .
CObList list;
CAge* pa1;
CAge* pa2;
list.AddHead(pa1 = new CAge(21));
list.AddHead(pa2 = new CAge(40)); // List now contains (40, 21).
ASSERT(*(CAge*)list.RemoveHead() == CAge(40)); // Old head
ASSERT(*(CAge*)list.GetHead() == CAge(21)); // New head
delete pa1;
delete pa2;
CObList::RemoveTail
Quita el elemento de la cola de la lista y devuelve un puntero a él.
CObject* RemoveTail();
Valor devuelto
Puntero al objeto que estaba en la cola de la lista.
Observaciones
Debe asegurarse de que la lista no está vacía antes de llamar a RemoveTail. Si la lista está vacía, la versión de depuración de la biblioteca microsoft Foundation Class afirma. Use IsEmpty para comprobar que la lista contiene elementos.
En la tabla siguiente se muestran otras funciones miembro similares a CObList::RemoveTail.
| Class | Función miembro |
|---|---|
CPtrList |
void* RemoveTail( ); |
CStringList |
CString RemoveTail( ); |
Example
Consulte CObList::CObList para obtener una lista de la CAge clase .
CObList list;
CAge* pa1;
CAge* pa2;
list.AddHead(pa1 = new CAge(21));
list.AddHead(pa2 = new CAge(40)); // List now contains (40, 21).
ASSERT(*(CAge*)list.RemoveTail() == CAge(21)); // Old tail
ASSERT(*(CAge*)list.GetTail() == CAge(40)); // New tail
delete pa1;
delete pa2; // Clean up memory.
CObList::SetAt
Establece el elemento en una posición determinada.
void SetAt(
POSITION pos,
CObject* newElement);
Parámetros
pos
POSITION del elemento que se va a establecer.
newElement
Puntero CObject que se va a escribir en la lista.
Observaciones
Una variable de tipo POSITION es una clave para la lista. No es lo mismo que un índice y no puede operar en un POSITION valor usted mismo.
SetAt escribe el CObject puntero en la posición especificada de la lista.
Debe asegurarse de que el POSITION valor representa una posición válida en la lista. Si no es válido, la versión de depuración de la biblioteca microsoft Foundation Class afirma.
En la tabla siguiente se muestran otras funciones miembro similares a CObList::SetAt.
| Class | Función miembro |
|---|---|
CPtrList |
void SetAt( POSITION pos , const CString& newElement ); |
CStringList |
void SetAt( POSITION pos , LPCTSTR newElement ); |
Example
Consulte CObList::CObList para obtener una lista de la CAge clase .
CObList list;
CObject* pa;
POSITION pos;
list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
if ((pos = list.GetTailPosition()) != NULL)
{
pa = list.GetAt(pos); // Save the old pointer for
//deletion.
list.SetAt(pos, new CAge(65)); // Replace the tail
//element.
delete pa; // Deletion avoids memory leak.
}
#ifdef _DEBUG
afxDump.SetDepth(1);
afxDump << _T("SetAt example: ") << &list << _T("\n");
#endif
Los resultados de este programa son los siguientes:
SetAt example: A CObList with 2 elements
a CAge at $4D98 40
a CAge at $4DB8 65
Consulte también
CObject (clase)
Gráfico de jerarquías
CStringList (clase)
CPtrList (clase)