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
view raw Vector.cpp hosted with ❤ by GitHub

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: