Dans cette leçon, nous allons regarder les conteneurs et les itérateurs, et commencez avec un vecteur standard. Le vecteur est une réponse à un problème auriculaire avec des tableaux C et C++. À savoir, le nombre d'éléments qui peuvent avoir besoin de déformer dans le conteneur n'est pas fixé et n'est peut-être pas non plus connu à l'avance. Vous ne pouvez donc pas allouer le nombre exact d'éléments dans le tableau, mais les éléments devront être accessibles de la manière la plus efficace. Ici, entrez le vecteur standard. Regardons l'exemple. Dans cet exemple, nous avons trois vecteurs en cours de construction. L'un est une valeur par défaut sans taille, un avec la taille mais pas d'éléments, et le troisième utilisant l'initialisation de course standard. Cela va construire un vecteur en place avec les valeurs qui sont définies dans la liste. Maintenant, construisons l'exemple et exécutons-le. Regardons d'abord l'élément, ajout d'un élément du vecteur à l'aide de la méthode pushback. Comme vous pouvez l'imaginer, l'élément s'ajoute via pushback est alloué et ajouté à la fin du vecteur, augmenter la taille du vecteur et rendre l'élément disponible. Et c'est exactement ce que nous voyons dans la sortie de ce programme. Dans le second cas, commentons-le et utilisez le vecteur de test deux, construire et exécuter. Et avec le vecteur de test deux, on voit que la taille initiale du vecteur est de 10. Et puis nous pouvons réellement définir l'élément à l'aide de crochets ou de l'opérateur de référencement. Nous pouvons en fait définir l'élément zéro à la valeur 15. Et c'est ce que nous voyons dans la sortie de la deuxième ligne pour le vecteur de test deux. Les derniers utilisateurs dont nous allons parler est de savoir comment accéder à l'élément du vecteur. Il y a en fait deux exemples de la façon dont cela est fait. Le premier exemple utilise quelque chose de similaire pour chacun, qui est essentiellement la boucle for qui se déplace à travers les valeurs à l'intérieur du vecteur, puis affiche leurs valeurs. Dans la quatrième manière, nous verrons que nous utiliserons des indices. Alors maintenant, construisons-le. Et nous recevons également un avertissement. L'avertissement ici sonne du fait que je déclare la variable i sous forme d'entier, auquel est affecté le type, mais la taille n'a pas besoin d'aller dans le territoire négatif. Donc la valeur pour la taille, le type de retour de la taille est en fait un type de taille, qui n'est généralement pas signé, mais nous pouvons vous utiliser le même type de taille au lieu de l'int et nous pouvons le faire, comme ça. En utilisant le type de taille, le type de taille est en fait le type déclaré dans un modèle vectoriel pour définir comme quel type est utilisé comme type de taille dans ce vecteur. Et généralement c'est un size_t. Mais construisons ceci, et lançons-le. Et comme vous pouvez le voir, la taille initiale du vecteur est de 10, qui est un, deux, trois, quatre, cinq, six, sept, huit, neuf, 10. Et les valeurs sont un, deux, trois, quatre, cinq, six, sept, huit, neuf, 10, soit en utilisant l'itération de valeur, soit en utilisant l'index. Il existe d'autres moyens et méthodes d'accéder et d'utiliser des vecteurs mais ceux-ci dépassent le cadre de cette section particulière, bien que je devrais souligner que parce que le vecteur est une extension de la fonctionnalité du tableau, la mémoire allouée au vecteur est contiguë permettant une grande vitesse d'accès aux données, mais vient avec des inconvénients quand il vient à la mémoire allouée et désallouée. Parce que la mémoire du vecteur doit être contiguë, mémoire allouée pendant les appels comme le pushback ou en play-back pourrait coûter cher si la mémoire nécessaire à l'ajout peut ne pas être disponible directement à la fin du vecteur. Et le vecteur entier peut avoir besoin de se déplacer de son emplacement d'origine au nouveau. Et si le nombre d'éléments est petit, cela n'aura peut-être pas tant d'impact, mais si le nombre d'éléments est grand, alors déménager pourrait coûter cher. Une chose similaire se produira lorsque vous effacez le vecteur. Parce que le contenu doit être contigu, tous les éléments derrière l'élément effacé devra aller de l'avant, ce qui entraînera des dépenses de temps. Il existe des moyens de contourner le premier problème, mais il n'y a aucun moyen de contourner facilement la seconde. Donc, dans cet esprit, regardons la file d'attente.