Listas
Listas em C++ são estruturas de dados que permitem armazenar elementos de forma sequencial, com grande flexibilidade para inserção e remoção em qualquer posição. O C++ oferece a classe std::list na biblioteca padrão, que implementa uma lista duplamente encadeada.
1. Incluir a biblioteca
Para usar listas, inclua o cabeçalho:
#include <list>
#include <iostream>
using namespace std;
2. Declarar uma lista
Podemos declarar uma lista de inteiros assim:
list<int> minhaLista;
3. Inserir elementos
- No final:
minhaLista.push_back(10); // Insere 10 no final - No início:
minhaLista.push_front(5); // Insere 5 no início
4. Remover elementos
- Do início:
minhaLista.pop_front(); // Remove o primeiro elemento - Do final:
minhaLista.pop_back(); // Remove o último elemento
5. Percorrer a lista
Podemos percorrer a lista usando uma repetição for com iteradores:
for (list<int>::iterator it = minhaLista.begin(); it != minhaLista.end(); ++it) {
cout << *it << " ";
}
cout << endl;
Ou, usando a repetição for(C++11 ou superior):
for (int valor : minhaLista) {
cout << valor << " ";
}
cout << endl;
6. Tamanho da lista
Para saber quantos elementos estão na lista:
cout << "Tamanho: " << minhaLista.size() << endl;
Exemplo de uso do método size:
list<int> c1;
c1.push_back(5);
cout << "List length is " << c1.size() << "." << endl;
c1.push_back(7);
cout << "List length is now " << c1.size() << "." << endl;
7. Remover elemento específico
Para remover todos os elementos com valor igual a 10:
minhaLista.remove(10);
8. Exemplo completo
#include <list>
#include <iostream>
using namespace std;
int main() {
list<int> numeros;
// Inserir elementos
numeros.push_back(10);
numeros.push_front(5);
numeros.push_back(20);
// Exibir a lista
cout << "Lista: ";
for (int n : numeros) {
cout << n << " ";
}
cout << endl;
// Remover do início e do final
numeros.pop_front();
numeros.pop_back();
// Exibir novamente
cout << "Após remoções: ";
for (int n : numeros) {
cout << n << " ";
}
cout << endl;
// Tamanho da lista
cout << "Tamanho: " << numeros.size() << endl;
return 0;
}
9. Observações
- A lista do C++ permite inserção e remoção eficiente em qualquer posição, mas o acesso direto (por índice) é lento.
- Para aceder um elemento específico, é necessário percorrer a lista até ele.
