C + + Standard Template Library contient deux contenants similaires , mais distinctes : le vecteur et la liste. Un vecteur est un ensemble de données organisées de façon séquentielle qui peut augmenter ou diminuer dynamiquement , une liste est un ensemble d' éléments liés qui ne sont pas nécessairement disposés séquentiellement dans la mémoire, mais on peut y accéder de manière séquentielle parce que chaque élément a un lien vers l'élément suivant. Apprendre les différences entre le vecteur et la liste peut vous aider à écrire des solutions plus optimisées en C + + . Insertion Speed
Les données contenues par un vecteur est disposé de façon séquentielle dans la mémoire, ce qui signifie que si vous insérez un élément au début d'un vecteur , chaque élément dans le vecteur doit être déplacé " vers le bas " par une . Ceci est coûteux en calcul , en particulier pour les grands vecteurs. Cette pénalité de performance vient chaque fois qu'un élément est inséré ou retiré depuis n'importe quel endroit , sauf le dernier élément du vecteur . Avec une liste , les données ne sont pas nécessairement disposées séquentiellement dans la mémoire, à la place , chaque élément de la liste contient un lien vers l'élément suivant dans la liste. Lorsque vous insérez dans une liste, l'objet peut être placé n'importe où dans la mémoire , ce qui rend l'insertion dans une liste beaucoup moins cher que l'insertion dans un vecteur.
Tri
le conteneur de liste dispose d'une fonction de tri intégré qui vous permet de trier les éléments basés sur un critère donné. Le vecteur , cependant, n'a pas cette fonction intégrée , et donc vous devez écrire le code de tri vous-même si vous voulez trier un vecteur.
De Random Access
< br > Listes de
ont des temps d'accès plus lent aléatoire que les vecteurs . Dans un vecteur, un élément peut être accessible directement par son index . Cela donne le vecteur temps d'accès aléatoire très rapide. Avec une liste , d'autre part , vous pouvez accéder directement que les premier et dernier éléments , vous devez parcourir la liste pour accéder à d'autres éléments , ce qui peut être très lent pour les grandes listes
redimensionnement. Photos, illustrations
vecteurs se développent de façon dynamique lorsque des éléments sont ajoutés à eux. Quand un vecteur grandit, il double le nombre d'éléments qu'il peut contenir . Ceci peut forcer tout le vecteur d'être déplacé vers un autre endroit dans la mémoire, ce qui peut être coûteux en calcul . Les listes n'ont pas besoin de stocker leurs éléments contigus dans la mémoire , et peut donc augmenter ou diminuer un élément à la fois , sans jamais avoir besoin de copier la liste entière vers un nouvel emplacement .
< Br >