Middle
Qual é a complexidade das operações para os contêineres std::vector e std::list em C++?
sobes.tech IA
Resposta da IA
std::vector
- Acesso por índice: O(1)
- Adicionar ao final (push_back): amortizado O(1)
- Inserção ou remoção no meio: O(n), pois requer deslocamento de elementos
- Iteração: O(n)
std::list (lista duplamente ligada)
- Acesso por índice: O(n), pois requer passagem sequencial
- Inserção e remoção em qualquer lugar (se houver um iterador): O(1)
- Iteração: O(n)
Assim, vector é eficiente para acesso rápido e adição ao final, enquanto list é adequado para inserções e remoções frequentes no meio sem necessidade de deslocar elementos.