você está aqui: Home  → Arquivo de Mensagens Programação Shell Linux: Inscrições Abertas

Estruturas de dados - não é preciso reinventar a roda!

Colaboração: Joel Saade

Data de Publicação: 26 de Março de 2006

Você, programador ou estudante de C++, precisa conhecer urgentemente a Standard Template Library, ou STL, como é mais conhecida. A STL é uma biblioteca integrada à biblioteca padrão de C++ projetada para manipular estruturas de dados comuns (vetor, deque, lista, fila, pilha etc) por meio de elementos próprios. Como é integrada, está disponível e pronta para uso. Os seus componentes básicos são: containers, algoritmos e iteradores. Os containers armazenam valores de um dado tipo. Os algoritmos correspondem às ações a serem executadas sobre os containers. Os iteradores percorrem os elementos dos containers da mesma forma que um índice ou ponteiro percorre os elementos de um array.

Para mostrar a potencialidade da STL, veja o programa-exemplo seguinte.

// Cria um vetor com nomes de planetas e o ordena ascendentemente
1     #include <iostream>
2     #include <algorithm>
3     #include <vector>
4     #include <string>
5     using namespace std;
6     int main()
7           {
8           vector<string> nomes;
9           vector<string>::iterator it;
10          nomes.push_back("Terra");
11          nomes.push_back("Marte");
12          nomes.push_back("Urano");
13          nomes.push_back("Saturno");
14          cout << "Vetor antes da ordenação:  ";
15          for (it = nomes.begin();it != nomes.end();++it)
16               cout << *it << " ";
17          cout << endl;
18          sort(nomes.begin(),nomes.end());
19          cout << "Vetor depois da ordenação: ";
20          for (it = nomes.begin();it != nomes.end();++it)
21               cout << *it << " ";
22          cout << endl;
23          return 0;
24          }

Resultado da execução do programa

Vetor antes da ordenação: Terra Marte Urano Saturno
Vetor depois da ordenação: Marte Saturno Terra Urano

Observações

Linha Descrição
2 Necessária para a maioria dos algoritmos
3 Necessária para o uso do container vetor, havendo um arquivo-cabeçalho para cada container
8 Declara um container do tipo vetor com elementos do tipo string,chamado nomes
9 Declara um iterador, chamado it, para percorrer os elementos do vetor
10 a 13 Utilizam o método push_back() definido para vetores, cuja tarefa é inserir elementos no final de um vetor
15 Acessa cada elemento do vetor, do primeiro até o último, por meio do iterador it
16 Exibe o valor de cada elemento do vetor por meio do operador de de referência *, que retorna o valor apontado pelo iterador it
18 Utiliza o algoritmo sort para ordenar elementos de containers

Para mais detalhes sobre a STL, veja o novo lançamento da Novatec Editora (www.novatec.com.br): "Guia de Consulta Rápida C++ STL", de Joel Saade.

O Joel escreveu também, pela editora Novatec, os seguintes livros:



Veja a relação completa dos artigos de Joel Saade