Liste vs vecteur C ++ comparé

Liste vs vecteur C ++ comparé
Liste et les vecteurs sont tous deux inclus dans la catégorie des structures de données.

Liste en C++

Une liste est une séquence qui prend en charge la traversée à la fois en avant et en arrière, et il est connu pour être une liste séquencée à double liaison. Nous pouvons insérer des éléments de suppression à n'importe quelle position, au début, à la fin et au milieu également.

Liste x;
X.insert_begin (7);
X.delete_end ();

La consommation de temps, connue par la complexité, est la même pour l'insertion et la suppression à tout moment de la liste. La liste est utilisée pour stocker les éléments et leur adresse avec. Ces adresses sont pointées à travers les pointeurs. Ces pointeurs aident à accéder facilement à la valeur dans les positions suivantes ou précédentes pour la traversée dans la direction arrière et avant. La mémoire de la liste est située dynamiquement chaque fois que nous ajoutons un nouvel élément à la liste.

Pourquoi devrions-nous utiliser une liste?

La structure de données de la liste montre une meilleure performance tout en insérant des données, en supprimant ou en déplaçant des éléments d'un point à un autre. Il est également bon dans l'utilisation d'algorithmes qui effectuent des opérations efficaces.

Syntaxe

Liste < class Type, class Alloc =allocator > Liste de classe;

T: représente le type de données d'éléments. Nous pouvons utiliser n'importe quel type de données. Alloc: Il décrit l'objet de l'allocateur. Une classe d'allocateur est utilisée. Cela dépend de la valeur et utilise un moyen simple d'allouer la mémoire.

Travail de la liste C ++

La liste fonctionne de telle manière que nous devons d'abord ajouter une bibliothèque de liste pour fonctionner avec toutes les fonctions qu'il fournit efficacement dans notre programme. À l'intérieur du programme, une liste est déclarée comme nous l'avons décrit dans la syntaxe. La méthode est assez simple. Le type d'éléments de données est défini avec le nom de la liste. À l'aide d'un opérateur d'affectation, nous insérons les valeurs entières dans la liste. Tous les éléments sont affichés en utilisant une boucle pour une boucle car nous devons afficher chaque élément présent dans chaque index.

Vecteur en c++

Vector est un tableau dynamique qui peut se redimensionner automatiquement lorsqu'il est ajouté ou supprimé d'un élément. Les éléments insérés dans des vecteurs sont placés dans un stockage contigu afin qu'ils soient facilement accessibles à l'aide d'Itérateurs. Les éléments sont insérés à l'arrière du vecteur.

vecteur x;
X.insérer (7);
X.supprimer();

L'insertion de données à la fin prend un temps différentiel. Tandis que les éléments sont retirés des vecteurs en utilisant un temps constant.

Pourquoi devrions-nous utiliser des vecteurs?

Nous préférons utiliser un conteneur vectoriel dans le programme C ++ lorsque nous n'avons pas à mentionner la taille des données avant de démarrer le programme. En utilisant des vecteurs, nous n'avons pas besoin de définir une taille maximale du conteneur.

Syntaxe

vecteur vector_name (éléments);

La syntaxe est lancée en utilisant un mot-clé vector. Un type de données est un type d'éléments / éléments à insérer dans les vecteurs. «Nom» montre le nom d'un vecteur ou de l'élément de données. Les «éléments» représentent le nombre d'éléments insérés. c'est un paramètre optionnel.

Fonctionnement des vecteurs C ++

Dans le programme principal, comme décrit par la syntaxe, nous déclarons le conteneur vectoriel en fournissant le type de données des éléments et le nom d'un vecteur. Après être entré dans les valeurs du vecteur, nous afficherons tous les éléments en utilisant une boucle pour une boucle. Un itérateur aidera à itérer tout au long de la boucle. De cette façon, un vecteur fonctionne dans le langage de programmation C ++.

Différences entre les listes et les vecteurs en C++

Suppression et insertion

L'insertion et la suppression des éléments de la liste sont très efficaces par rapport aux vecteurs. En effet, si l'insertion de données au début, à la fin ou au milieu de la liste nécessite un ou deux pointeurs pour être échangé.

D'un autre côté, dans les vecteurs, la procédure d'insertion et de suppression fera tous les éléments à déplacer par un. De plus, si la mémoire n'est pas suffisante, plus de mémoire est allouée et des données entières y sont transférées.

Ainsi, l'insertion et la suppression dans les listes sont plus efficaces et efficaces que les vecteurs.

Accès aléatoire

Dans les listes, il est difficile pour un accès aléatoire pour se produire car il est dit que dans les listes, une liste à double liaison est présente. Donc, si vous souhaitez accéder au 6ème élément, vous devez d'abord itérer les 5 premiers éléments de la liste.

Et dans le cas des vecteurs, tous les éléments sont stockés dans des emplacements de mémoire contigu pour effectuer un accès aléatoire dans les vecteurs.

Utilisation de pointeurs

Nous devons utiliser des pointeurs dans la liste pour stocker l'adresse. Ainsi, selon les programmeurs d'experts, il est très logique tout en traitant des pointeurs dans les listes. Travailler avec des listes est considéré comme difficile par rapport aux vecteurs car les vecteurs utilisent des opérations normales comme les tableaux.

Voici une représentation tabulaire de certaines différences majeures entre les listes et les vecteurs.

Vecteur en c++ Liste en C++
La mémoire utilisée est contigu. Il utilise une mémoire non contigu.
Il a une taille par défaut. Il n'y a pas de taille par défaut dans le cas des listes.
Dans les vecteurs, l'espace est alloué aux données présentes uniquement. Un espace supplémentaire est requis dans les listes pour les données et pour que les nœuds y stockent des adresses.
L'insertion d'éléments à la fin utilise un temps constant à tout moment du vecteur; c'est 0. Le processus de suppression de la liste est très bon marché à partir de n'importe quel point.
L'accès aléatoire est facilement possible. Il est impossible de demander un accès aléatoire sur la liste.

Implémentation de la liste

Dans cet exemple, nous avons utilisé des opérations comme l'affichage des données dans la liste, l'inverse et les fonctions de tri. De plus, les fonctions begin () et end () sont également utilisées.

La fonction d'affichage est déclarée séparément. Cela utilise le début () et la fin () pour traverser toute la liste et afficher tous les éléments à l'aide de l'objet. Nous avons créé deux listes ici. Les deux listes sont entrées sur les éléments par l'avant et l'arrière également. Les données seront entrées dans les deux directions.

Après cela, nous appellerons la fonction d'affichage pour voir tout son contenu. Et utilisez également les fonctions intégrées comme le revers et le tri.

Sortir:

Implémentation de vecteur

Cet exemple comprend la création de vecteurs. Un seul vecteur est créé, mais nous entrons 5 valeurs en utilisant une boucle «pour».

Après avoir entré des données, nous afficherons la taille du vecteur créé par tous les éléments à l'intérieur. Après cela, nous insérons une nouvelle valeur en utilisant à nouveau une boucle «pour». Mais cette fois, nous avons utilisé des fonctions begin and end (). Nous pouvons voir que la valeur est entrée à la fin. Et la taille du vecteur est également mise à jour en fonction des données elle-même.

Sortir:

Conclusion

«Liste vs vector c ++ comparé» décrit les différences entre la liste et le vecteur. Initialement, nous avons décrit la liste et les vecteurs en détail et avons travaillé sur eux. Afin qu'il puisse aider l'utilisateur à faire la distinction entre ces conteneurs. Deux exemples sont mis en œuvre dans le système d'exploitation Ubuntu Linux qui vérifie la différence dans la déclaration, l'insertion et la suppression des éléments des conteneurs.