Bonjour ~ camarades de classe, cet article se penchera sur le conteneur vectoriel en C. En tant que l'un des tableaux dynamiques les plus couramment utilisés dans la bibliothèque de modèles standard (STL), le vecteur fournit un stockage d'éléments flexible et des méthodes d'accès efficaces. Nous commencerons par les connaissances de base et apprendrons progressivement ses opérations de création, d'initialisation, de parcours, de gestion de l'espace, d'ajout, de suppression, de vérification et de modification. Grâce à des exemples et des analyses détaillés, nous espérons aider les lecteurs à pleinement comprendre et maîtriser les compétences et les précautions nécessaires à l'utilisation du vecteur.
Un vecteur est un conteneur de séquence qui représente un tableau de taille variable.
Tout comme les tableaux, les vecteurs utilisent également un espace de stockage continu pour stocker des éléments. Cela signifie que vous pouvez utiliser des indices pour accéder aux éléments du vecteur, ce qui est aussi efficace qu'un tableau. Mais contrairement à un tableau, sa taille peut être modifiée dynamiquement et sa taille sera automatiquement gérée par le conteneur.
Essentiellement, vector utilise un tableau alloué dynamiquement pour stocker ses éléments. Lorsque de nouveaux éléments sont insérés, le tableau doit être redimensionné pour augmenter l'espace de stockage. Cela se fait en allouant un nouveau tableau, puis en déplaçant tous les éléments dans ce tableau. En termes de temps, il s'agit d'une tâche relativement coûteuse, car le vecteur n'est pas redimensionné à chaque fois qu'un nouvel élément est ajouté au conteneur.
Stratégie d'espace d'allocation de vecteur : le vecteur alloue de l'espace supplémentaire pour s'adapter à une éventuelle croissance, car l'espace de stockage est plus grand que l'espace de stockage réel requis. Différentes bibliothèques utilisent différentes stratégies pour équilibrer l'utilisation et la réallocation de l'espace. Mais dans tous les cas, la réallocation doit augmenter de manière logarithmique en taille d'intervalle, de sorte que l'insertion d'un élément à la fin se fasse en temps constant.
Par conséquent, Vector occupe plus d’espace de stockage afin d’avoir la capacité de gérer l’espace de stockage et de se développer de manière dynamique et efficace.
Comparé à d'autres conteneurs de séquences dynamiques (deque, list et forward_list), vector est plus efficace lors de l'accès aux éléments, et l'ajout et la suppression d'éléments à la fin sont relativement efficaces. Pour les autres opérations de suppression et d'insertion qui ne sont pas terminées, l'efficacité est encore plus faible. Il est préférable d'utiliser des itérateurs et des références unifiés plutôt que list et forward_list.
Il existe trois domaines d'utilisation de STL : être capable de l'utiliser, être capable de le comprendre et être capable de l'étendre. Apprenons ensuite le vecteur. Nous l'apprendrons également de cette manière.