Essa aula vai lhe ensinar a utilizar uma importante estrutura de dados, o vector. Um vector é uma sequência de tamanho variável que contém variáveis de um mesmo tipo, de forma que pode-se adicionar ou remover variáveis dessa sequência. Outra maneira de definir um vector é como um vetor dinâmico, devido a dinamicidade de seu tamanho.
Para declarar um vector basta seguir a seguinte estrutura:
vector< tipo_de_variavel > nome_do_vector;
Por exemplo:
vector<int> I; | |
// declaramos um vector de int de nome I | |
vector<char> C; | |
// declaramos um outro vector, so que este é de char com nome C |
Ao declarar um vector, este possui tamanho inicial igual a 0. Contudo pode-se também, declarar um vector com um tamanho inicial definido, vale lembrar que ele pode ser alterado durante a execução do código. Para isso fazemos:
vector<int> inteiro(1010); | |
// declaramos um vector de int | |
// nome inteiro e com um tamanho inicial igual a 1010 |
Além disso, o vector já possui algumas funções implementadas na STL(Standard Template Library) do C++. Vamos listar as mais utilizadas, caso queira conhecer todas as funções, recomendamos que você acesse esse link.
Adicionar um elemento ao final:
Utilizamos o comando push_back(). Observe o exemplo abaixo:
vector<int> I; | |
// O comando push_back(elemento) adiciona ao final do vector o elemento desejado | |
I.push_back(10); | |
// adicionamos 10 ao final de I, nesse caso como I estava vazio 10 é o único elemento de I | |
I.push_back(17); | |
// adicionamos 17 após 10 | |
I.push_back(0); | |
// adicionamos 10 após 0 | |
I.push_back(-15); | |
// adicionamos -15 após 0 |
Ao final dessas operações, I = {10, 17, 0, -15}.
Acessando as posições:
Acessamos as posições de um vector através de seu índice entre colchetes. Vale lembrar que a primeira posição em um vector é 0.
vector<int> I; | |
I.push_back(10); | |
I.push_back(17); | |
I.push_back(0); | |
I.push_back(-15); | |
cout << I[0] << " " << I[2] << "\n"; | |
// imprimimos a primeira e a terceira posição de I | |
// O vector, assim como a string e o vetor, é indexado em 0 |
Consultar o tamanho:
O comando size() retorna o tamanho do vector.
vector<int> I; | |
I.push_back(10); | |
I.push_back(17); | |
I.push_back(0); | |
I.push_back(-15); | |
cout << I.size() << "\n"; | |
// imprimo na tela o tamanho de I, no caso 4 |
Acessar o primeiro elemento:
Utilizamos o comando front().
vector<int> I; | |
I.push_back(10); | |
I.push_back(17); | |
I.push_back(0); | |
I.push_back(-15); | |
cout << I.front() << "\n"; | |
// imprimimos o primeiro elemento de I, no caso 10 |
Acessar o último elemento:
Utilizamos o comando back().
vector<int> I; | |
I.push_back(10); | |
I.push_back(17); | |
I.push_back(0); | |
I.push_back(-15); | |
cout << I.back() << "\n"; | |
// imprimimos o ultimo elemento de I, no caso -15 |
Apagar o último elemento:
Para isso usamos o comando pop_back().
vector<int> I; | |
I.push_back(10); | |
I.push_back(17); | |
I.push_back(0); | |
I.push_back(-15); | |
cout << I.back() << "\n"; | |
// imprime -15 | |
I.pop_back(); | |
// O ultimo elemento do vector, no caso -15 | |
cout << I.back() << "\n"; | |
// imprime 0 |
Percorrer um vector:
Para percorremos um vector, basta escrevemos um loop da primeira posição até a última.
vector<int> I; | |
I.push_back(10); | |
I.push_back(17); | |
I.push_back(0); | |
I.push_back(-15); | |
for(int i = 0; i < I.size() ; i++) | |
{ | |
// seu código | |
} | |
// Do c++11 em diante, também podemos fazer: | |
for(auto u: I) | |
{ | |
// seu código | |
// Vale lembrar que ao fazermos isso, u vai guardar os valores, mas não conseguimos | |
// saber em qual iteração do for estamos, para isso precisariamos percorrer o vector | |
// do jeito acima | |
} |
Apagar um vector:
Utilizamos o comando clear() para apagar todos os elementos de um vector.
vector<int> I; | |
I.push_back(10); | |
I.push_back(17); | |
I.push_back(0); | |
I.push_back(-15); | |
cout << I.size() << "\n"; | |
// imprime o tamanho de I, no caso 4 | |
I.clear(); | |
// Apago I | |
cout << I.size() << "\n"; | |
// Imprimo o tamanho de I, no caso 0 |
Agora que você já sabe utilizar um vector, treine seu conhecimento fazendo as seguintes questões: