Sobes.tech
Junior — Middle

Que ações são realizadas ao adicionar um novo elemento ao array dinâmico do tipo vector?

sobes.tech IA

Resposta da IA

Ao adicionar um novo elemento a um array dinâmico do tipo std::vector, as seguintes ações são realizadas:

  1. Verifica-se se há memória suficiente atualmente alocada para acomodar o novo elemento.
  2. Se houver espaço suficiente, o elemento é adicionado ao final do array.
  3. Se não houver memória suficiente, um novo bloco de memória de tamanho maior (geralmente entre 1,5 a 2 vezes o tamanho atual) é alocado.
  4. Os elementos existentes são copiados ou movidos para o novo bloco de memória.
  5. O bloco de memória antigo é liberado.
  6. O novo elemento é adicionado ao final.

Exemplo:

std::vector<int> v = {1, 2, 3};
v.push_back(4); // adiciona o elemento 4

Este mecanismo garante uma complexidade constante amortizada para a adição de elementos, apesar de possíveis realocações de memória.