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:
- Verifica-se se há memória suficiente atualmente alocada para acomodar o novo elemento.
- Se houver espaço suficiente, o elemento é adicionado ao final do array.
- 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.
- Os elementos existentes são copiados ou movidos para o novo bloco de memória.
- O bloco de memória antigo é liberado.
- 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.