Listas em C++

Atualizado pela última vez em junho de 2025.

A estrutura de dados

Listas são estruturas dinâmicas, de acesso sequencial. Listas são usadas para armazenar e recuperar informações em quantidades que variam com frequência durante a execução do programa. Quando não se tem ideia do volume de informações que o programa vai trabalhar, as listas também costumam ser preferíveis em relação aos vetores. A STL proporciona duas classes para lista:

Acesso aos elementos

Para iterar entre os elementos da lista, usa-se iteradores, da classe list<>::iterator (ou const_iterator, reverse_iterator, const_reverse_iterator). Iteradores são como ponteiros: eles são uma referência para um elemento da lista. Derreferenciar um iterador com o operador * produz o elemento da lista. Se for iterar todos os elementos da lista, provavelmente é fácil usar um simples for. Iteratores podem ser atualizados com o operador ++ (ou -- quando aplicável). Prefira os operadores de pré-incremento (++i) em vez dos de pós-incremento (i++).

Arquivo com a declaração

Para usar a classe list deve-se incluir o arquivo list. Para usar a classe forward_list deve-se incluir o arquivo forward_list. A interface das duas classes é equivalente e este material demonstra o uso apenas da classe list.

Métodos mais importantes

MétodoDescrição
push_back(elemento)Insere um elemento no fim da lista
push_front(elemento)Insere um elemento no início da lista
insert(iterador,elemento)Insere um elemento na posição indicada pelo iterador
erase(iterador)Remove um elemento da posição indicada pelo iterador
sort()Ordena os elementos da lista (opcionalmente, pode-se passar uma função de comparação com comportamento semelhante ao operador <)
reverse()Inverte a ordem dos elementos na lista
begin()Retorna um iterador que aponta para o primeiro elemento
end()Retorna um iterador que aponta para o último elemento
empty()Verifica se a lista está vazia
size()Retorna o número de elementos da lista
front()Retorna o primeiro elemento da lista
back()Retorna o último elemento da lista
clear()Remove todos os elementos da lista

Exemplo

Ver arquivo lista.cpp