Tutorial C ++ STL
Espero que você já tenha entendido o conceito de modelo C ++ que discutimos anteriormente. O C ++ STL (Standard Template Library) é um poderoso conjunto de classes de template C ++ para fornecer classes e funções de uso geral com modelos que implementam muitos algoritmos e estruturas de dados populares e comumente usados, como vetores, listas, filas e pilhas.
No núcleo da Biblioteca de modelos padrão C ++ estão os seguintes três componentes bem estruturados -
Sr. Não | Descrição do componente |
---|---|
1 | Containers Os contêineres são usados para gerenciar coleções de objetos de um determinado tipo. Existem vários tipos diferentes de recipientes como deque, lista, vetor, mapa, etc. |
2 | Algorithms Algoritmos atuam em contêineres. Eles fornecem os meios pelos quais você executará a inicialização, classificação, pesquisa e transformação do conteúdo dos contêineres. |
3 | Iterators Os iteradores são usados para percorrer os elementos de coleções de objetos. Essas coleções podem ser contêineres ou subconjuntos de contêineres. |
Discutiremos sobre todos os três componentes C ++ STL no próximo capítulo enquanto discutimos a Biblioteca Padrão C ++. Por enquanto, tenha em mente que todos os três componentes têm um rico conjunto de funções predefinidas que nos ajudam a realizar tarefas complicadas de maneira muito fácil.
Tomemos o seguinte programa que demonstra o contêiner de vetor (um modelo padrão C ++) que é semelhante a um array, com a exceção de que trata automaticamente de seus próprios requisitos de armazenamento no caso de crescer -
#include <iostream>
#include <vector>
using namespace std;
int main() {
// create a vector to store int
vector<int> vec;
int i;
// display the original size of vec
cout << "vector size = " << vec.size() << endl;
// push 5 values into the vector
for(i = 0; i < 5; i++) {
vec.push_back(i);
}
// display extended size of vec
cout << "extended vector size = " << vec.size() << endl;
// access 5 values from the vector
for(i = 0; i < 5; i++) {
cout << "value of vec [" << i << "] = " << vec[i] << endl;
}
// use iterator to access the values
vector<int>::iterator v = vec.begin();
while( v != vec.end()) {
cout << "value of v = " << *v << endl;
v++;
}
return 0;
}
Quando o código acima é compilado e executado, ele produz o seguinte resultado -
vector size = 0
extended vector size = 5
value of vec [0] = 0
value of vec [1] = 1
value of vec [2] = 2
value of vec [3] = 3
value of vec [4] = 4
value of v = 0
value of v = 1
value of v = 2
value of v = 3
value of v = 4
Aqui estão os seguintes pontos a serem observados relacionados a várias funções que usamos no exemplo acima -
A função de membro push_back () insere valor no final do vetor, expandindo seu tamanho conforme necessário.
A função size () exibe o tamanho do vetor.
A função begin () retorna um iterador para o início do vetor.
A função end () retorna um iterador para o final do vetor.