Skip to main content

Qu'est-ce qu'un itérateur vectoriel?

Un itérateur vectoriel est une construction en langage informatique qui permet à un programme de lire les valeurs de données contenues dans une collection spécialisée appelée vecteur.Les vecteurs sont des objets utilisés pour regrouper les valeurs de données associées, similaires aux tableaux et listes.De nombreux langages informatiques différents, notamment Java et C ++, contiennent des vecteurs et leurs itérateurs connexes.Chaque langue utilise une syntaxe différente pour les itérateurs, mais le mécanisme sous-jacent dans toutes les langues est un accès individuel à chaque membre possible du groupe vectoriel.

Se déplacer à travers un vecteur utilisant un itérateur est souvent appelé traversant ou itération.Les itérateurs vectoriels peuvent également être utilisés pour identifier explicitement un objet particulier dans la collection vectorielle.Lorsque cette identification est effectuée, l'objet est identifié par son index dans le vecteur, et non par aucune caractéristique de l'objet lui-même.Les actions peuvent être effectuées sur l'objet si l'itérateur est déréférencé, accordant au programme un accès explicite à l'objet plutôt que sur le vecteur.

Vector Iterators a très peu de chances de rencontrer les erreurs hors limites qui peuvent se produire tout en itérant sur les tableaux.Bien que les vecteurs soient essentiellement des tableaux glorifiés lorsqu'ils sont déconstruits, les vecteurs ont presque toujours un certain type de vérification des limites qui garantit qu'un itérateur vectoriel reste aux indices appropriés.Lors de la traversée d'un vecteur, l'itérateur, s'il est appelé correctement, commence toujours au début du vecteur et se termine exactement à la fin.La spécification explicite d'un indice incorrect est toujours possible dans certains contextes, mais la vérification des limites intégrée des vecteurs, ce qui se traduit par leurs itérateurs, empêche les problèmes de débordement des limites. En C ++, les vecteurs peuvent être modifiés tout en étant traversés par les itérateurs., mais Java interdit explicitement cela de cela.Les actions de Javas dans cette circonstance sont beaucoup plus sûres car le changement d'un vecteur pendant qu'un itérateur se déplace peut faire lire par inadvertance l'itérateur à l'extérieur du vecteur.Tenter d'ajouter ou de supprimer les éléments d'un vecteur tout en itérant est particulièrement dangereux, en particulier si les indices de début et de fin que le vecteur doivent couvrir sont codés en dur.Un itérateur vectoriel n'est pas équipé pour gérer des changements soudains dans les vecteurs, et les vecteurs sont censés être relativement statiques tout en étant traversé. Un itérateur vectoriel peut être implicite ou explicite, et l'un ou l'autre forme syntaxique exécute la traversée tout aussi en douceur.En dépit d'être codé pour l'efficacité, un itérateur vectoriel peut être ralenti par un très grand vecteur.Dans ce cas, le codage dur de l'indice final du vecteur accélère les traversées.Ce problème ne se produit pas avec de petits vecteurs, donc le codage dur de l'indice final ne provoque aucune accélération appréciable.Codage dur L'indice final peut augmenter le risque de débordement, donc en général, il doit être fait avec parcimonie.