Escrito por Thiago Mota e Anita Almeida
A estrutura
faz parte do conjunto de estruturas da Standard Template Library e representa um vetor dinâmico, ou seja, um vetor que não precisa ter um tamanho fixo pré-definido como visto anteriormente na aula de Vetores.
Declaração
A biblioteca <vector> é necessária para utilizar a estrutura
. Além disso, também vemos que, diferentemente de um vetor, o tipo da estrutura é colocada entre <tipo>, ou seja, declaramos usando o seguinte comando: vector<tipo> nome.
Inserção de elementos
O primeiro comando do
e um dos mais importantes é o push_back(), que insere um elemento ao final do vetor. Por exemplo, se os elementos do vetor forem
e usarmos o comando push_back(2), o vetor após a mudança será
.
A complexidade do comando push_back() é
.
Acesso a um elemento
Assim como um vetor normal, para acessarmos o
-ésimo elemento do
, podemos utilizar a sintaxe
. Além disso, como o vetor é dinâmico, podemos utilizar o comando
para acessar o número de elementos no vetor.
Nota: O comando
retorna um tipo diferente de
. Assim, para realizar comparações entre
e
é recomendado utilizar
para o computador transformar o
em inteiro.
Outros comandos
Abaixo, citaremos brevemente outros comandos úteis do
:
pop_back(): Remove o último elemento do
.
Complexidade:
.
erase(): Remove o(s) elemento(s) de uma determinada posição ou intervalo do
.
Complexidade:
.
clear(): Remove todos os elementos do
.
Complexidade:
.
resize(n): Troca o tamanho do vetor para
e pode ou não inserir um determinado número nas novas posições.
Complexidade:
.
Para ordenar um vector utilizando o sort, podemos fazer o seguinte código:
Complexidade:
.
Nota: Os outros comandos do vector podem ser encontrados nos links de referência a seguir:
Problemas para praticar:
Problema 1 – Fila
Problema 2 – Escada Rolante
Problema 3 – Zero para Cancelar
Problema 4 – Lista de Chamada
