Middle
¿Cuál es la complejidad de las operaciones para los contenedores std::vector y std::list en C++?
sobes.tech AI
Respuesta de la IA
std::vector
- Acceso por índice: O(1)
- Añadir al final (push_back): amortizado O(1)
- Inserción o eliminación en medio: O(n), ya que requiere desplazamiento de elementos
- Iteración: O(n)
std::list (lista doblemente enlazada)
- Acceso por índice: O(n), ya que requiere recorrido secuencial
- Inserción y eliminación en cualquier lugar (si hay un iterador): O(1)
- Iteración: O(n)
Por lo tanto, vector es eficiente para acceso rápido y añadir al final, mientras que list es adecuado para inserciones y eliminaciones frecuentes en medio sin necesidad de desplazar elementos.