De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


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:

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


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