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.
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 }
| Vetor antes da ordenação: | Terra Marte Urano Saturno |
| Vetor depois da ordenação: | Marte Saturno Terra Urano |
| 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: