Diferencia entre vector y lista

Vector: Vector es un tipo de array dinámica que tiene la capacidad de cambiar el tamaño automáticamente después de la inserción o eliminación de elementos. Los elementos en vector se colocan en almacenamiento contiguo para que se pueda acceder a ellos y recorrerlos mediante iteradores. El elemento se inserta al final del vector.
Ejemplo:

vector v;
v.insert(5);
v.delete();

Lista: la lista es una secuencia de doble enlace que admite el recorrido hacia adelante y hacia atrás. El tiempo de inserción y borrado en el principio, final y medio es constante. Tiene la memoria no contigua y no hay memoria preasignada.
Ejemplo:

list  l;
l.insert_begin(5);
l.delete_end();

Vector-vs-List

A continuación se muestra una tabla de diferencias entre Vector y Lista:

Vector Lista
Tiene memoria contigua. Si bien tiene memoria no contigua.
Está sincronizado. Si bien no está sincronizado.
El vector puede tener un tamaño predeterminado. La lista no tiene un tamaño predeterminado.
En vector, cada elemento solo requiere el espacio para sí mismo. En la lista, cada elemento requiere espacio adicional para el Node que contiene el elemento, incluidos los punteros a los elementos siguientes y anteriores de la lista.
La inserción al final requiere un tiempo constante, pero la inserción en otro lugar es costosa. La inserción es barata sin importar en qué parte de la lista ocurra.
Vector es seguro para subprocesos. La lista no es segura para subprocesos.
La eliminación al final del vector necesita un tiempo constante pero para el resto es O(n). La eliminación es barata sin importar en qué parte de la lista ocurra.
Es posible el acceso aleatorio de los elementos. El acceso aleatorio de los elementos no es posible.
Los iteradores dejan de ser válidos si se agregan o eliminan elementos del vector. Los iteradores son válidos si se agregan o eliminan elementos de la lista.

Publicación traducida automáticamente

Artículo escrito por pp_pankaj y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *