Aucun élément ne peut être inclus devant le tableau. Avec C ++ 17 et plus, un élément peut être inclus devant le vecteur en utilisant la fonction membre EMPlace ().
Pour le reste de cet article, les différences entre le vecteur et le tableau sont illustrées. Pour chaque point, l'incapacité du tableau est mentionnée, ou sa façon franc ou lourde d'atteindre le même objectif est donnée.
Contenu de l'article
Création d'un vecteur ou d'un tableau
Un vecteur peut être créé de plusieurs manières. La manière de base est la suivante:
vecteurDe même, un tableau serait créé comme suit:
char arr [] = 'a', 'b', 'c', 'd', 'e';Notez la différence dans les opérandes qui se trouvent à gauche de l'opérateur d'affectation. Le nombre d'éléments pour le vecteur peut ensuite être ajouté ou réduit, mais la taille du réseau reste fixe, à 5 dans ce cas.
Pour avoir et utiliser un vecteur dans un programme, le programme devrait commencer:
#inclurePour avoir et utiliser un tableau dans un programme, aucune directive de préprocesseur n'est nécessaire.
Taille croissante
Le code suivant montre comment un vecteur de deux éléments initialement, est augmenté à quatre éléments, en utilisant sa fonction membre Push_back ():
vecteurCe code doit être dans un corps de fonction. Pour le tableau, et puisque le tableau a une taille fixe, créez un tableau pour le nombre maximum d'éléments envisagés, avant d'ajouter les éléments à l'aide de l'opérateur []. Exemple:
Char Arr [4];De plus, ce code devrait être à l'intérieur d'un corps de fonction.
Insertion
Dans le code suivant, un élément est inséré devant l'élément pointé par l'itérateur, P:
vectorvtr = 'a', 'b', 'd', 'e';La sortie est:
A b c d eLa première instruction du code crée l'objet vectoriel. «C», qui aurait dû être devant «D» par ordre alphabétique, est absent ici. La deuxième déclaration renvoie un itérateur qui pointe vers le premier élément du vecteur. Les deux déclarations suivantes incrément le pointeur pour pointer vers «D». La déclaration après attribue «C» à ch. Dans ce segment de code, la dernière instruction insère «C» devant «D», en utilisant l'itérateur.
Quant au tableau, il n'y a aucun moyen qu'un élément puisse être inséré. En raison de limitations comme celle-ci pour le tableau, le vecteur et d'autres conteneurs ont été conçus.
Remarque: la fonction membre insert () peut également être utilisée pour insérer un élément devant un vecteur.
Colocataire
L'ajouter signifie ajouter des éléments à l'arrière. La fonction membre Push_back () peut être utilisée pour ajouter des éléments à l'arrière du vecteur - voir ci-dessus. Le tableau ne peut pas être ajouté à. La seule façon de contourner ce problème pour le tableau est de créer un tableau pour la taille maximale envisagée. Mettre des éléments depuis le début. Alors un espace (cellules) sera laissé dans le tableau. Ensuite, s'il est nécessaire d'ajouter des éléments à l'arrière, ajustez les éléments (valeurs) dans les espaces derrière qui sont vides (qui ont des valeurs par défaut).
Effacer un élément
Pour le vecteur, un élément peut être effacé en utilisant l'itérateur. L'itérateur pointera alors vers l'élément suivant, qui était là avant l'effacement. Le code suivant efface «B»:
vectorvtr = 'a', 'b', 'c', 'd', 'e';Aucun élément du tableau ne peut être effacé, bien qu'il puisse être changé.
Clair
Tous les éléments du vecteur peuvent être supprimés, avec sa fonction membre Clear (), comme suit:
vectorvtr = 'a', 'b', 'c', 'd', 'e';La sortie n'est rien. La meilleure chose à faire avec le tableau est de remplacer tous les éléments par une valeur par défaut. Avec l'inteer, la valeur par défaut est 0. Le code suivant illustre:
int arr [] = 1, 2, 3, 4, 5;La sortie est:
0 0 0 0 0Avec le caractère, la valeur par défaut est le caractère nul, \ 0. Le code suivant illustre:
char arr [] = 'a', 'b', 'c', 'd', 'e';La sortie ne montre rien.
Échange
Même si deux vecteurs ne sont pas de la même taille, leurs éléments peuvent être échangés, avec la fonction de membre swap (). Le code suivant montre ceci:
vecteur vtr1 = 'a', 'b', 'c', 'd', 'e';Pour que deux tableaux soient échangés, ils doivent être de la même longueur. Le tableau n'a pas de fonctions membres (pas de méthodes). Ainsi, pour échanger des éléments contre des tableaux, un code doit être écrit comme suit:
char arr1 [] = 'a', 'b', 'c', 'd', 'e';La sortie est:
Contenu de New Arr1:Taille
La taille du vecteur est renvoyée par sa fonction membre, size (). C'est-à-dire qu'il est déterminé au moment de l'exécution. Illustration:
vectorvtr = 'a', 'b', 'c', 'd';Cela peut également être fait comme ceci:
char arr [7] = 'a', 'b', 'c', 'd';C'est-à-dire mettre un nombre (taille) supérieur à la taille supposée (de 4 dans ce cas). Cependant, le nombre ne doit pas être inférieur au nombre d'éléments initiaux.
Tableau de longueur variable
La taille du tableau peut cependant être donnée (non déterminée) au moment de l'exécution. Dans ce cas, le tableau devra être créé dans une fonction ou dans une construction similaire. Le programme suivant illustre ceci:
#inclureLa sortie est:
A B C DConclusion
Les principales différences entre le vecteur et le tableau sont les suivantes: la taille (longueur) d'un vecteur peut être augmentée naturellement, mais celle d'un tableau est fixe et ne peut pas être augmentée. Les éléments peuvent être insérés dans un vecteur mais ne peuvent pas être insérés dans un tableau. Les éléments peuvent être ajoutés à la fin du vecteur mais ne peuvent pas être ajoutés à la fin du tableau. Le vecteur est une classe à partir de laquelle d'autres objets vectoriels sont instanciés, mais le tableau est un pointeur constant vers une séquence de données du même type. Le vecteur a des méthodes (fonctions membres), mais le tableau ne le fait pas, et donc le vecteur est appelé une structure de données. Alors que le pointeur peut être utilisé avec le tableau, les itérateurs sont utilisés avec le vecteur. Un itérateur est un pointeur élaboré. Le tableau montre son incapacité ou a une manière franc ou encombrante d'atteindre le même objectif pour chaque différence.