Différence entre vecteur et liste

Vecteur vs liste

Souvent source de confusion pour les programmeurs, les vecteurs et les listes sont des séquences utilisées dans les archives de tableaux en C ++ et en Java. Les deux termes contiennent des adresses de tableau, mais avec des méthodes différentes pour conserver des tableaux..
La chose fondamentale que nous devons savoir est qu'un tableau est une "liste" qui contient tout ou partie des données, c'est-à-dire des entiers, des points flottants ou des caractères, et est définie entre crochets "[]."
En fait, les vecteurs et les listes agissent en fonction des instances. Alors regardons ces deux termes un à un.

Les vecteurs
Les vecteurs sont utilisés dans la tenue de tableaux et l'accès aux éléments. Ici, vous pouvez accéder à n'importe quel élément de manière aléatoire en utilisant l'opérateur “[]”. Il devient donc facile de parcourir tous les éléments ou un élément spécifique avec une opération vectorielle. Ainsi, si vous insérez un objet à la fin, au début ou au milieu, les vecteurs ont un point positif, car vous pouvez accéder à l'adresse aléatoire et y apporter des modifications. Cependant, les vecteurs sont un peu lents par rapport aux objets de la liste. Les vecteurs sont considérés comme des objets synchronisés, efficaces en accès aléatoire et stockent correctement les données avec une liste synchronisée. Un vecteur est sélectionné chaque fois qu'il n'est pas nécessaire d'insérer ou de supprimer le
milieu (liste) ou de face.
Le nombre d'éléments dans un tableau peut varier considérablement.
Exemple:
vecteur V;
V.insert (V.begin (), 3);
assert (V.size () == 1 && V.capacity ()> = 1 && V [0] == 3);

Des listes
Les listes sont des «séquences à double liaison» prenant en charge les parcours avant et arrière. Le temps pris pour l'insertion et la suppression au début, à la fin et au milieu est constant. L'insertion et l'épissage entre les listes liées n'invalident aucune itération dans les éléments. Seule la suppression invalide l'itération. Ils ne sont pas synchronisés, ils ne sont donc pas accessibles de manière aléatoire. L'ordre des itérations peut changer en fonction de l'utilisateur, mais cela n'affecte pas les modifications apportées aux éléments. Ils sont plus rapides que les vecteurs et conviennent parfaitement à l'insertion et à la suppression dans les listes de début, milieu et fin des éléments..

Exemple:
#comprendre
// liste la définition du modèle de classe
… .
int main()

int array [4] = 2, 6, 4, 8;
std :: list values;
std :: list otherValues;

Résumé:
1. Une liste n'est pas synchronisée alors qu'un vecteur est.
2. Les listes n'ont pas de taille par défaut alors qu'un vecteur a une taille par défaut de 10.
3. Les listes et les vecteurs sont tous deux des tableaux à croissance dynamique..
4. Une liste n'est pas thread-safe alors qu'un vecteur est thread-safe.
5. Les listes, dans la mesure où elles ne concernent que les ajouts et les suppressions à l’avant et à l’arrière, sont plus rapides tout en
les vecteurs prennent plus de CPU.
6. Un vecteur croît deux fois plus grand que sa taille tandis que la liste diminue de moitié, c’est-à-dire 50%.