Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Observação
A biblioteca Microsoft Foundation Classes (MFC) continua sendo suportada. No entanto, não estamos mais adicionando recursos ou atualizando a documentação.
Dá suporte a listas ordenadas de ponteiros não-comunicados CObject acessíveis sequencialmente ou por valor de ponteiro.
Sintaxe
class CObList : public CObject
Membros
Construtores públicos
| Nome | DESCRIÇÃO |
|---|---|
CObList::CObList |
Constrói uma lista vazia para CObject ponteiros. |
Métodos públicos
| Nome | DESCRIÇÃO |
|---|---|
CObList::AddHead |
Adiciona um elemento (ou todos os elementos em outra lista) ao cabeçalho da lista (cria uma nova cabeça). |
CObList::AddTail |
Adiciona um elemento (ou todos os elementos em outra lista) à parte final da lista (faz uma nova cauda). |
CObList::Find |
Obtém a posição de um elemento especificado pelo valor do ponteiro. |
CObList::FindIndex |
Obtém a posição de um elemento especificado por um índice baseado em zero. |
CObList::GetAt |
Obtém o elemento em uma determinada posição. |
CObList::GetCount |
Retorna o número de elementos nesta lista. |
CObList::GetHead |
Retorna o elemento principal da lista (não pode estar vazio). |
CObList::GetHeadPosition |
Retorna a posição do elemento principal da lista. |
CObList::GetNext |
Obtém o próximo elemento para iterar. |
CObList::GetPrev |
Obtém o elemento anterior para iteração. |
CObList::GetSize |
Retorna o número de elementos nesta lista. |
CObList::GetTail |
Retorna o elemento final da lista (não pode estar vazio). |
CObList::GetTailPosition |
Retorna a posição do elemento final da lista. |
CObList::InsertAfter |
Insere um novo elemento após uma determinada posição. |
CObList::InsertBefore |
Insere um novo elemento antes de uma determinada posição. |
CObList::IsEmpty |
Testa a condição de lista vazia (sem elementos). |
CObList::RemoveAll |
Remove todos os elementos dessa lista. |
CObList::RemoveAt |
Remove um elemento dessa lista, especificado por posição. |
CObList::RemoveHead |
Remove o elemento do cabeçalho da lista. |
CObList::RemoveTail |
Remove o elemento da parte final da lista. |
CObList::SetAt |
Define o elemento em uma determinada posição. |
Observações
CObList as listas se comportam como listas duplamente vinculadas.
Uma variável de tipo POSITION é uma chave para a lista. Você pode usar uma POSITION variável como um iterador para percorrer uma lista sequencialmente e como um indicador para manter um lugar. No entanto, uma posição não é a mesma que um índice.
A inserção de elemento é muito rápida na cabeça da lista, na parte final e em um conhecido POSITION. Uma pesquisa sequencial é necessária para pesquisar um elemento por valor ou índice. Essa pesquisa poderá ser lenta se a lista for longa.
CObList incorpora a IMPLEMENT_SERIAL macro para dar suporte à serialização e despejo de seus elementos. Se uma lista de CObject ponteiros for armazenada em um arquivo morto, com um operador de inserção sobrecarregado ou com a Serialize função membro, cada CObject elemento será serializado por sua vez.
Se você precisar de um despejo de elementos individuais CObject na lista, deverá definir a profundidade do contexto de despejo como 1 ou maior.
Quando um CObList objeto é excluído ou quando seus elementos são removidos, somente os CObject ponteiros são removidos, não os objetos que eles referenciam.
Você pode derivar suas próprias classes de CObList. Sua nova classe de lista, projetada para conter ponteiros para objetos derivados CObject, adiciona novos membros de dados e novas funções de membro. Observe que a lista resultante não é estritamente segura, pois permite a inserção de qualquer CObject ponteiro.
Observação
Você deve usar a IMPLEMENT_SERIAL macro na implementação de sua classe derivada se pretende serializar a lista.
Para obter mais informações sobre como usar CObList, consulte o artigo Coleções.
Hierarquia de herança
CObList
Requirements
Cabeçalho: afxcoll.h
CObList::AddHead
Adiciona um novo elemento ou lista de elementos ao cabeçalho desta lista.
POSITION AddHead(CObject* newElement);
void AddHead(CObList* pNewList);
Parâmetros
newElement
O CObject ponteiro a ser adicionado a essa lista.
pNewList
Um ponteiro para outra CObList lista. Os elementos na pNewList lista serão adicionados.
Valor de retorno
A primeira versão retorna o POSITION valor do elemento recém-inserido.
A tabela a seguir mostra outras funções de membro semelhantes a CObList::AddHead.
| Classe | Função membro |
|---|---|
CPtrList |
POSITION AddHead( void * newElement );void AddHead( CPtrList * pNewList ); |
CStringList |
POSITION AddHead(const CString& newElement );POSITION AddHead(LPCTSTR newElement );void AddHead(CStringList * pNewList ); |
Observações
A lista pode estar vazia antes da operação.
Example
Consulte CObList::CObList uma listagem da CAge classe.
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
Os resultados deste programa são os seguintes:
AddHead example: A CObList with 2 elements
a CAge at $44A8 40
a CAge at $442A 21
CObList::AddTail
Adiciona um novo elemento ou lista de elementos à parte final desta lista.
POSITION AddTail(CObject* newElement);
void AddTail(CObList* pNewList);
Parâmetros
newElement
O CObject ponteiro a ser adicionado a essa lista.
pNewList
Um ponteiro para outra CObList lista. Os elementos na pNewList lista serão adicionados.
Valor de retorno
A primeira versão retorna o POSITION valor do elemento recém-inserido.
Observações
A lista pode estar vazia antes da operação.
A tabela a seguir mostra outras funções de membro semelhantes a CObList::AddTail.
| Classe | Função membro |
|---|---|
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 uma listagem da CAge classe.
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
Os resultados deste programa são os seguintes:
AddTail example: A CObList with 2 elements
a CAge at $444A 21
a CAge at $4526 40
CObList::CObList
Constrói uma lista de ponteiros vazia CObject .
CObList(INT_PTR nBlockSize = 10);
Parâmetros
nBlockSize
A granularidade de alocação de memória para estender a lista.
Observações
À medida que a lista aumenta, a memória é alocada em unidades de nBlockSize entradas. Se uma alocação de memória falhar, uma CMemoryException será gerada.
A tabela a seguir mostra outras funções de membro semelhantes a CObList::CObList.
| Classe | Função membro |
|---|---|
CPtrList |
CPtrList( INT_PTR nBlockSize = 10 ); |
CStringList |
CStringList( INT_PTR nBlockSize = 10 ); |
Example
Veja abaixo uma listagem da CObjectclasse CAge derivada usada em todos os exemplos de coleção:
// 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
};
Veja abaixo um exemplo de uso do CObList construtor:
CObList list(20); // List on the stack with blocksize = 20.
CObList* plist = new CObList; // List on the heap with default
// blocksize.
CObList::Find
Pesquisa a lista sequencialmente para localizar o primeiro CObject ponteiro correspondente ao ponteiro especificado CObject .
POSITION Find(
CObject* searchValue,
POSITION startAfter = NULL) const;
Parâmetros
searchValue
O ponteiro do objeto a ser encontrado nesta lista.
startAfter
A posição inicial da pesquisa.
Valor de retorno
Um POSITION valor que pode ser usado para iteração ou recuperação de ponteiro de objeto; NULL se o objeto não for encontrado.
Observações
Observe que os valores de ponteiro são comparados, não o conteúdo dos objetos.
A tabela a seguir mostra outras funções de membro semelhantes a CObList::Find.
| Classe | Função membro |
|---|---|
CPtrList |
POSITION Find( void *searchValue , POSITION startAfter = NULL ) const; |
CStringList |
POSITION Find( LPCTSTR searchValue , POSITION startAfter = NULL ) const; |
Example
Consulte CObList::CObList uma listagem da CAge classe.
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 o valor de nIndex como um índice na lista.
POSITION FindIndex(INT_PTR nIndex) const;
Parâmetros
nIndex
O índice baseado em zero do elemento de lista a ser encontrado.
Valor de retorno
Um POSITION valor que pode ser usado para iteração ou recuperação de ponteiro de objeto; NULL se nIndex for muito grande. (A estrutura gera uma asserção se nIndex for negativa.)
Observações
Ele inicia uma verificação sequencial do cabeçalho da lista, parando no elemento nth.
A tabela a seguir mostra outras funções de membro semelhantes a CObList::FindIndex.
| Classe | Função membro |
|---|---|
CPtrList |
POSITION FindIndex( INT_PTR nIndex ) const; |
CStringList |
POSITION FindIndex( INT_PTR nIndex ) const; |
Example
Consulte CObList::CObList uma listagem da CAge classe.
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
Uma variável de tipo POSITION é uma chave para a lista.
CObject*& GetAt(POSITION position);
const CObject*& GetAt(POSITION position) const;
Parâmetros
position
Um POSITION valor retornado por uma chamada de função anterior GetHeadPosition ou Find membro.
Valor de retorno
Consulte a descrição do valor retornado para GetHead.
Observações
Não é o mesmo que um índice e você não pode operar em um POSITION valor por conta própria.
GetAt recupera o CObject ponteiro associado a uma determinada posição.
Você deve garantir que seu POSITION valor represente uma posição válida na lista. Se for inválido, a versão de depuração da Biblioteca de Classes do Microsoft Foundation será declarada.
A tabela a seguir mostra outras funções de membro semelhantes a CObList::GetAt.
| Classe | Função membro |
|---|---|
CPtrList |
const void*& GetAt( POSITION position ) const;void*& GetAt( POSITION position ); |
CStringList |
const CString& GetAt( POSITION position ) const;CString& GetAt( POSITION position ); |
Example
Confira o exemplo de FindIndex.
CObList::GetCount
Obtém o número de elementos nesta lista.
INT_PTR GetCount() const;
Valor de retorno
Um valor inteiro que contém a contagem de elementos.
A tabela a seguir mostra outras funções de membro semelhantes a CObList::GetCount.
| Classe | Função membro |
|---|---|
CPtrList |
INT_PTR GetCount( ) const; |
CStringList |
INT_PTR GetCount( ) const; |
Example
Consulte CObList::CObList uma listagem da CAge classe.
CObList list;
list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
ASSERT(list.GetCount() == 2);
CObList::GetHead
Obtém o CObject ponteiro que representa o elemento principal desta lista.
CObject*& GetHead();
const CObject*& GetHead() const;
Valor de retorno
Se a lista for acessada por meio de um ponteiro para um const CObList, retornará GetHead um CObject ponteiro. Isso permite que a função seja usada apenas no lado direito de uma instrução de atribuição e, portanto, protege a lista contra modificações.
Se a lista for acessada diretamente ou por meio de um ponteiro para um CObList, retornará GetHead uma referência a um CObject ponteiro. Isso permite que a função seja usada em ambos os lados de uma instrução de atribuição e, portanto, permite que as entradas da lista sejam modificadas.
Observações
Você deve garantir que a lista não esteja vazia antes de chamar GetHead. Se a lista estiver vazia, a versão de depuração da Biblioteca de Classes do Microsoft Foundation será declarada. Use IsEmpty para verificar se a lista contém elementos.
A tabela a seguir mostra outras funções de membro semelhantes a CObList::GetHead.
| Classe | Função membro |
|---|---|
CPtrList |
const void*& GetHead( ) const; void*& GetHead( ); |
CStringList |
const CString& GetHead( ) const; CString& GetHead( ); |
Example
Consulte CObList::CObList uma listagem da CAge classe.
O exemplo a seguir ilustra o uso do GetHead lado esquerdo de uma instrução de atribuição.
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
Obtém a posição do elemento principal desta lista.
POSITION GetHeadPosition() const;
Valor de retorno
Um POSITION valor que pode ser usado para iteração ou recuperação de ponteiro de objeto; NULL se a lista estiver vazia.
A tabela a seguir mostra outras funções de membro semelhantes a CObList::GetHeadPosition.
| Classe | Função membro |
|---|---|
CPtrList |
POSITION GetHeadPosition( ) const; |
CStringList |
POSITION GetHeadPosition( ) const; |
Example
Consulte CObList::CObList uma listagem da CAge classe.
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
Obtém o elemento de lista identificado por rPosition, em seguida, define rPosition para o POSITION valor da próxima entrada na lista.
CObject*& GetNext(POSITION& rPosition);
const CObject* GetNext(POSITION& rPosition) const;
Parâmetros
rPosition
Uma referência a um POSITION valor retornado por uma chamada de função de membro anterior GetNextGetHeadPositionou outro membro.
Valor de retorno
Consulte a descrição do valor retornado para GetHead.
Observações
Você pode usar GetNext em um loop de iteração de encaminhamento se estabelecer a posição inicial com uma chamada para GetHeadPosition ou Find.
Você deve garantir que seu POSITION valor represente uma posição válida na lista. Se for inválido, a versão de depuração da Biblioteca de Classes do Microsoft Foundation será declarada.
Se o elemento recuperado for o último da lista, o novo valor será rPosition definido como NULL.
É possível remover um elemento durante uma iteração. Confira o exemplo de RemoveAt.
Observação
A partir do MFC 8.0, a versão const deste método foi alterada para retornar const CObject* em vez de const CObject*&. Essa alteração foi feita para colocar o compilador em conformidade com o padrão C++.
A tabela a seguir mostra outras funções de membro semelhantes a CObList::GetNext.
| Classe | Função membro |
|---|---|
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 uma listagem da CAge classe.
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
Os resultados deste programa são os seguintes:
a CAge at $479C 40
a CAge at $46C0 21
CObList::GetPrev
Obtém o elemento de lista identificado por rPosition, em seguida, define rPosition como o POSITION valor da entrada anterior na lista.
CObject*& GetPrev(POSITION& rPosition);
const CObject* GetPrev(POSITION& rPosition) const;
Parâmetros
rPosition
Uma referência a um POSITION valor retornado por uma chamada de função de membro anterior GetPrev ou outra.
Valor de retorno
Consulte a descrição do valor retornado para GetHead.
Observações
Você pode usar GetPrev em um loop de iteração reversa se estabelecer a posição inicial com uma chamada para GetTailPosition ou Find.
Você deve garantir que seu POSITION valor represente uma posição válida na lista. Se for inválido, a versão de depuração da Biblioteca de Classes do Microsoft Foundation será declarada.
Se o elemento recuperado for o primeiro da lista, o novo valor será rPosition definido como NULL.
Observação
A partir do MFC 8.0, a versão const deste método foi alterada para retornar const CObject* em vez de const CObject*&. Essa alteração foi feita para colocar o compilador em conformidade com o padrão C++.
A tabela a seguir mostra outras funções de membro semelhantes a CObList::GetPrev.
| Classe | Função membro |
|---|---|
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 uma listagem da CAge classe.
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
}
Os resultados deste programa são os seguintes:
a CAge at $421C 21
a CAge at $421C 40
CObList::GetSize
Retorna o número de elementos de lista.
INT_PTR GetSize() const;
Valor de retorno
O número de itens na lista.
Observações
Chame esse método para recuperar o número de elementos na lista.
A tabela a seguir mostra outras funções de membro semelhantes a CObList::GetSize.
| Classe | Função membro |
|---|---|
CPtrList |
INT_PTR GetSize( ) const; |
CStringList |
INT_PTR GetSize( ) const; |
Example
Consulte CObList::CObList uma listagem da CAge classe.
CObList list;
list.AddHead(new CAge(21));
list.AddHead(new CAge(40)); // List now contains (40, 21).
ASSERT(list.GetSize() == 2);
CObList::GetTail
Obtém o CObject ponteiro que representa o elemento final desta lista.
CObject*& GetTail();
const CObject*& GetTail() const;
Valor de retorno
Consulte a descrição do valor retornado para GetHead.
Observações
Você deve garantir que a lista não esteja vazia antes de chamar GetTail. Se a lista estiver vazia, a versão de depuração da Biblioteca de Classes do Microsoft Foundation será declarada. Use IsEmpty para verificar se a lista contém elementos.
A tabela a seguir mostra outras funções de membro semelhantes a CObList::GetTail.
| Classe | Função membro |
|---|---|
CPtrList |
const void*& GetTail( ) const; void*& GetTail( ); |
CStringList |
const CString& GetTail( ) const; CString& GetTail( ); |
Example
Consulte CObList::CObList uma listagem da CAge classe.
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
Obtém a posição do elemento final desta lista; NULL se a lista estiver vazia.
POSITION GetTailPosition() const;
Valor de retorno
Um POSITION valor que pode ser usado para iteração ou recuperação de ponteiro de objeto; NULL se a lista estiver vazia.
A tabela a seguir mostra outras funções de membro semelhantes a CObList::GetTailPosition.
| Classe | Função membro |
|---|---|
CPtrList |
POSITION GetTailPosition( ) const; |
CStringList |
POSITION GetTailPosition( ) const; |
Example
Consulte CObList::CObList uma listagem da CAge classe.
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
Adiciona um elemento a essa lista após o elemento na posição especificada.
POSITION InsertAfter(
POSITION position,
CObject* newElement);
Parâmetros
position
Um POSITION valor retornado por uma chamada de função anterior GetNextou GetPrevFind membro.
newElement
O ponteiro do objeto a ser adicionado a essa lista.
A tabela a seguir mostra outras funções de membro semelhantes a CObList::InsertAfter.
| Classe | Função membro |
|---|---|
CPtrList |
POSITION InsertAfter( POSITION position , void * newElement ); |
CStringList |
POSITION InsertAfter( POSITION position , const CString& newElement );POSITION InsertAfter( POSITION position , LPCTSTR newElement ); |
Valor de retorno
Um POSITION valor igual ao position parâmetro.
Example
Consulte CObList::CObList uma listagem da CAge classe.
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
Os resultados deste programa são os seguintes:
InsertAfter example: A CObList with 3 elements
a CAge at $4A44 40
a CAge at $4A64 65
a CAge at $4968 21
CObList::InsertBefore
Adiciona um elemento a essa lista antes do elemento na posição especificada.
POSITION InsertBefore(
POSITION position,
CObject* newElement);
Parâmetros
position
Um POSITION valor retornado por uma chamada de função anterior GetNextou GetPrevFind membro.
newElement
O ponteiro do objeto a ser adicionado a essa lista.
Valor de retorno
Um POSITION valor que pode ser usado para iteração ou recuperação de ponteiro de objeto; NULL se a lista estiver vazia.
A tabela a seguir mostra outras funções de membro semelhantes a CObList::InsertBefore.
| Classe | Função membro |
|---|---|
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 uma listagem da CAge classe.
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
Os resultados deste programa são os seguintes:
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 se essa lista não contém elementos.
BOOL IsEmpty() const;
Valor de retorno
Diferente de zero se esta lista estiver vazia; caso contrário, 0.
A tabela a seguir mostra outras funções de membro semelhantes a CObList::IsEmpty.
| Classe | Função membro |
|---|---|
CPtrList |
BOOL IsEmpty( ) const; |
CStringList |
BOOL IsEmpty( ) const; |
Example
Confira o exemplo de RemoveAll.
CObList::RemoveAll
Remove todos os elementos dessa lista e libera a memória associada CObList .
void RemoveAll();
Observações
Nenhum erro será gerado se a lista já estiver vazia.
Ao remover elementos de um CObList, você remove os ponteiros do objeto da lista. É sua responsabilidade excluir os próprios objetos.
A tabela a seguir mostra outras funções de membro semelhantes a CObList::RemoveAll.
| Classe | Função membro |
|---|---|
CPtrList |
void RemoveAll( ); |
CStringList |
void RemoveAll( ); |
Example
Consulte CObList::CObList uma listagem da CAge classe.
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
Remove o elemento especificado desta lista.
void RemoveAt(POSITION position);
Parâmetros
position
A posição do elemento a ser removido da lista.
Observações
Ao remover um elemento de um CObList, você remove o ponteiro do objeto da lista. É sua responsabilidade excluir os próprios objetos.
Você deve garantir que seu POSITION valor represente uma posição válida na lista. Se for inválido, a versão de depuração da Biblioteca de Classes do Microsoft Foundation será declarada.
A tabela a seguir mostra outras funções de membro semelhantes a CObList::RemoveAt.
| Classe | Função membro |
|---|---|
CPtrList |
void RemoveAt( POSITION position ); |
CStringList |
void RemoveAt( POSITION position ); |
Example
Tenha cuidado ao remover um elemento durante uma iteração de lista. O exemplo a seguir mostra uma técnica de remoção que garante um valor válido POSITION para GetNext.
Consulte CObList::CObList uma listagem da CAge classe.
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
Os resultados deste programa são os seguintes:
RemoveAt example: A CObList with 2 elements
a CAge at $4C1E 65
a CAge at $4B22 21
CObList::RemoveHead
Remove o elemento da cabeça da lista e retorna um ponteiro para ele.
CObject* RemoveHead();
Valor de retorno
O CObject ponteiro anteriormente à frente da lista.
Observações
Você deve garantir que a lista não esteja vazia antes de chamar RemoveHead. Se a lista estiver vazia, a versão de depuração da Biblioteca de Classes do Microsoft Foundation será declarada. Use IsEmpty para verificar se a lista contém elementos.
A tabela a seguir mostra outras funções de membro semelhantes a CObList::RemoveHead.
| Classe | Função membro |
|---|---|
CPtrList |
void* RemoveHead( ); |
CStringList |
CString RemoveHead( ); |
Example
Consulte CObList::CObList uma listagem da CAge classe.
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
Remove o elemento da parte final da lista e retorna um ponteiro para ele.
CObject* RemoveTail();
Valor de retorno
Um ponteiro para o objeto que estava na parte final da lista.
Observações
Você deve garantir que a lista não esteja vazia antes de chamar RemoveTail. Se a lista estiver vazia, a versão de depuração da Biblioteca de Classes do Microsoft Foundation será declarada. Use IsEmpty para verificar se a lista contém elementos.
A tabela a seguir mostra outras funções de membro semelhantes a CObList::RemoveTail.
| Classe | Função membro |
|---|---|
CPtrList |
void* RemoveTail( ); |
CStringList |
CString RemoveTail( ); |
Example
Consulte CObList::CObList uma listagem da CAge classe.
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
Define o elemento em uma determinada posição.
void SetAt(
POSITION pos,
CObject* newElement);
Parâmetros
pos
O POSITION elemento a ser definido.
newElement
O CObject ponteiro a ser gravado na lista.
Observações
Uma variável de tipo POSITION é uma chave para a lista. Não é o mesmo que um índice e você não pode operar em um POSITION valor por conta própria.
SetAt grava o CObject ponteiro na posição especificada na lista.
Você deve garantir que seu POSITION valor represente uma posição válida na lista. Se for inválido, a versão de depuração da Biblioteca de Classes do Microsoft Foundation será declarada.
A tabela a seguir mostra outras funções de membro semelhantes a CObList::SetAt.
| Classe | Função membro |
|---|---|
CPtrList |
void SetAt( POSITION pos , const CString& newElement ); |
CStringList |
void SetAt( POSITION pos , LPCTSTR newElement ); |
Example
Consulte CObList::CObList uma listagem da CAge classe.
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
Os resultados deste programa são os seguintes:
SetAt example: A CObList with 2 elements
a CAge at $4D98 40
a CAge at $4DB8 65
Consulte também
Classe CObject
Gráfico da hierarquia
Classe CStringList
Classe CPtrList